//
/**
 * Kennari:   Ebba Thora Hvannberg
 * Nemendur:  Hopurinn: Hazir (er sama og "reidi-buinn" a Azeri Azerbaijan)
 * Namskeid:  Hugbunadarverkefni 2.
 * 
 * Tilgangur verksins: Veita notendum snjallsimans himneskan frid fyrir
 * 					   hringingum thegar illa stendur a, aun thess ad
 *                     notandinn thurfi ad hafa ahyggjur af thvi ad
 *                     stilla simanum a thoegn eda ad stilla simanum
 *                     aftur a hringingu, thegar af stadnum er kominn.
 *                     
 *                     Til vidbotar vid thessa moguleika. Getur verkid
 *                     lika thjonad theim tilgangi, ad lata snjallsimann
 *                     hringja a a-kvednum voeldum stoedum, svo sem a
 *                     vinnustad (sem venjulega er a vinnutima) og a
 *                     vinnustodum, ef ad vinnustadurinn er dreyfd vidar.
 *                     I thessu tilfelli er her kominn tilvalin vinnusimi.
 *                     Til thess ad velja svo, er hnappur, sem heitir
 *                     "THOGN" i upphafi en verdur "HRINGJA" (vinnusimi)
 *                     eftir thvi, sem smellt er eftir thorfum.
 *                     
 *                     Enn eitt til vidbotar vid thetta verk. Margir vinna
 *                     vinnuna sina her og thar ut um allt, til daemis
 *                     vidgerdamenn, taeknimenn, heimilis-laeknar, verktakar
 *                     og fleiri adilar, sem ekki eru ad vinna vinnuna sina
 *                     a einum fostum stad, en thurfa ad vera a ferdinni
 *                     mest allan timann. Oft eda oftast thurfa vidkomandi
 *                     ekki ad vera nema EINU SINNI a hverjum stad ef allt
 *                     virkar, sem gjort var thar, thvi fylgir ad THESSI
 *                     NOTANDI THURFI ADEINS ad VISTA thennan stad EINU
 *                     SINNI til thess ad fa frid eda lata na i sjer eftir
 *                     thorfum. Um leid og vidkomandi er buinn ad sinna
 *                     verki sinu thar, fer snjallsiminn aftur a annad-
 *                     hvort hringingu eda ekki hringinu (thogn) eftir
 *                     thvi, hvernig simanum var valinn. Hnappurinn
 *                     sem smella a heitir "THOGN" i upphafi en verdur
 *                     "HRINGJA" eftir thvi, sem smellt er eftir thorfum
 *                     og stadurinn, sem vistadur var, er thegar i stad
 *                     strikadur ut og notandinn thurfi EKKI ad velta
 *                     voengum yfir thvi lengur.
 * 
 * Utgafa:    1.0
 * Dags:      2012/Jan/29/Sunnudagur (Nafn: Hafnar)
 * 
 * Utgafa     1.1
 * Dags:      2012/Feb/08/Midvikurdagur
 *            Baett vid "Stefnu" fra akvednum stad.
 *            gegnum adferd, sem heitir "ReikniStokkur"
 *            
 * Utgafa     1.2
 * Dags:      2012/Feb/12/Sunnudagur
 * 			  Adferdin faerd yfir i nytt verk "Hazir"
 *            med nyja nafni: "GPShnitOgStefnu"
 *            (var adur i "Funny Face" undir nafninu "Hafnar",
 *             sem ekki gaf neina lysingu a innihald adferdarinnar)
 *             
 * Utgafa     1.3
 * Dags:      2012/Marz/18/Sunnudagur
 *            Nafn: GPShnitOgStefnaActivity.java, sem
 *            er eldri utgafa af Hazir. Nyji Hazir er HazirActivity.java
 *            med tilheyrandi klosum.
 *            Nyji Hazir, sem fyrr segir verdur utgafa nr. 2.0, sja skjalið:
 *            HazirActivity.java.
 * 
 * A-staeda:  Nafnid: ReikniStokkur er meira al-hlida (o-hlutbundid = abstract)
 * 
 * Dags:      2012/Marz/21/Midvikurdagur
 * Utgafa:    1.4
 *            Sjalfvirk skipting milli gervihnattar og simastaura GPS eftir
 *            mottokuskilyrdum (i vinnslu skv. sogu nr. 490).
 * 
 * Dags:      2012/April/01
 * Utgafa:    2.3
 *            Sjalfvirk skipting, sem fyrr segir var tekin i burtu, vegna thess
 *            ad hun virkadi ekki.
 *            
 * Dags:      2012/April/08
 * Utgafa     3.0
 *            Nytt nafn er komid a GPSvistaActivity.java => Nyja nafnid er
 *            GPSstillingarActivity.java, sem er meira lysandi fyrir thad
 *            verkefni, sem thad forrit a ad sinna fyrir Simastaura GPS,
 *            sem er gamla Hazir (GPShnitOgStefnaActivity.java).
 *            
 * Dags:      2012/April/08 og 2012/April/09
 *            3.1
 *            Mikid thula-thrif framkvaemt, vistun og eyding gagna lagfaerd
 *            baedi i GPShnitOgStefna.java og i GagnaVinnslu.java.
 *            
 * Dags:      2012/April/10
 * 			  3.2
 * 			  Mikid thula-thrif framkvaemt og snyrtad til. Forritid styttist
 *            talsvert vid that med tilliti til virkum linum (um 100 linum).
 *            
 * Dags:      2012/April/13
 *            4.0
 *            Mikid thula-thrif framkvaemt og snyrtad til.
 *            Klasan GPShnitOgStefnaActivity.java (thessi klasi) var skipt upp i
 *            tvaer haedir eda med odrum ordum, buid var til eina auka haed, fyrir
 *            klasa med EINGONGU stadbundnar adferdir, sem allir hafa thad sameiginlega
 *            ad vera skilgreindar med "protected" i stad "public".
 *            Thessar adferdir eru eingongu notadar i thessum klasa GPShnitOgStefna.java.
 *            
 *            Thessi tilfaerzla hefur enginn a-hrif a gang forritsins. Thessi tilfaerzla
 *            var eingoengu framkvaemd med thad i huga ad taka til og framkvaema "THULA-THRIF",
 *            sem a ensku er "PROGRAM REFACTORING".
 *            
 * Dags:      2012/April/24
 *            4.1
 *            Mikid thula-thrif framkvaemt og snyrtad til og finpusninga.
 *    
 */
//
package is.Hazir.GPS;
//
import is.Hazir.R;
import is.Hazir.Exceptions.EkkertSkjalFinnstException;
import is.Hazir.Exceptions.EkkertStakFinnstException;
import is.Hazir.Exceptions.HringinginErOpinAllStadarException;
import is.Hazir.Gagnagrunnur.GagnaVinnsla;
import is.Hazir.Public.Bless;
import is.Hazir.Public.ReikniStokkur;

import java.io.IOException;
import java.text.DecimalFormat;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.media.AudioManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
//
/**
 * Thessi klasi er 3. haed fyrir ofan klasanum GPSstadbundnarAdferdir, sem
 *                                                 er a 2. haedinni.
 */
public class GPShnitOgStefnaActivity extends GPSstadbundnarAdferdir implements LocationListener 
{
	/*
	   Allar fastar og tilviks breytur eru ad finna klasanum a 1. haed.
	*/
	/**
	 * Called when the activity is first created.
	 * Kallad thegar keyrzluforrit fyrst er stofnad, sem er
	 * "onCreate(...):
	 *
	 * Thetta "onCreate(...)" er upphafs-keyrzlu adferd, sem er
	 * jafngildi = Driver, sem er drifandi hluti forritsins,
	 * sem faer allt til ad gerast i upphafi keyrzlu forritsins,
	 * eda med odrum ordum: I adferdinni "onCreate(...)" er forritinu
	 * "GPShnitOgStefnaActivity.java" (Simastaura Hazir) med tilheyrandi
	 * klosum og XML skjali sett upp adur en ad hinn eiginlega vinnsla
	 * fer af stad, svo sem hlustun (a ensku: "listener" => "event") sem
	 * er adgerd til thess ad bida eftir vidbrogd fra notenda, svo sem ad
	 * vista stadsetninga til thess ad fa frid (venjulegur simi) EDA til
	 * thess fa hringingu (vinnu-simi). Ekki ma gleyma adal-drif-krafturinn
	 * i forritinu "Simastaura Hazir", sem er hlustun eftir i sifelldu eftir
	 * nyjum Simastaura GPS hnitum, sem forritid vinnur ur, til thess ad
	 * geta slokkt eda kveikt a hringingunni a a-kvednum voldum stodum
	 * med tilheyrandi titringi a Morse stafrofinu, sem er "R" = enginn
	 * hringing ( . - . ) eda thogn og svo kemur: "K" = hringing ( - . - ).
	 * 
	 * Med thessu verki fylgir i kjolfarinu upplysinga um stadsetningu
	 * snjallsimans i hendi notandans a hverjum tima a hverjum stad, sem
	 * birt er a notenda-vidmoti forritsins "Simastaura Hazir".
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.gps_hnit_og_stefna);
		//
		alert = new AlertDialog.Builder(GPShnitOgStefnaActivity.this).create(); 
		t = new Timer();
		//
		//
		gv                   = new GagnaVinnsla();
		audiomanager         = (AudioManager) getSystemService(AUDIO_SERVICE);
		//
		grunnRammi           = (LinearLayout) findViewById(R.id.linearLayoutGrunnur);
		gluggiBrdGrDMS       = (TextView) findViewById(R.id.TextView02);
		gluggiLngGrDMS       = (TextView) findViewById(R.id.TextView04);
		gluggiBrdGrDD        = (TextView) findViewById(R.id.TextView06);
		gluggiLngGrDD        = (TextView) findViewById(R.id.TextView08);
		vistaTakki           = (Button)findViewById   (R.id.buttonVista);
		eydaTakki            = (Button)findViewById   (R.id.buttonEyda);
		hringjaTakki         = (Button)findViewById   (R.id.buttonHringja);
		stuttaStund          = (Button)findViewById   (R.id.ibStuttaStund);
		gluggiBrdGrDMSvistud = (TextView) findViewById(R.id.TextView09);
		gluggiLngGrDMSvistud = (TextView) findViewById(R.id.TextView10);
		gluggiBrdGrDDvistud  = (TextView) findViewById(R.id.TextView11);
		gluggiLngGrDDvistud  = (TextView) findViewById(R.id.TextView12);
		gluggiFjarlagdFraGPShnitiKynna = (TextView) findViewById(R.id.TextView13);
		gluggiFjarlagdFraGPShnitiBirta = (TextView) findViewById(R.id.TextView14);
		gluggiSkilabodaSkjoda = (TextView) findViewById(R.id.textViewVegalengd);
		gluggiSkrifaStefnuTil = (TextView) findViewById(R.id.textViewStefnaTil);
		gluggiSkrifaStefnuFra = (TextView) findViewById(R.id.textViewStefnaFra);
		skrifaRadius          = (EditText)findViewById (R.id.editTextRadius);
		//
		// TODO Taka burt grunnRammi.setBackgroundColor(0xff000077);
		//
		vistaTakki.setText(R.string.vista);
		eydaTakki.setText(R.string.eyda);
		// TODO hringjaTakki.setText(R.string.thoegn);
		hringjaTakki.setText(R.string.thoegn);
		stuttaStund.setText(R.string.vista_stuttlega);
		//
		gluggiBrdGrDMSvistud.setText("");
		gluggiLngGrDMSvistud.setText("");
		//
		gluggiBrdGrDDvistud.setText ("");
		gluggiLngGrDDvistud.setText ("");
		//
		gluggiFjarlagdFraGPShnitiKynna.setText("");
		gluggiFjarlagdFraGPShnitiBirta.setText("");
		//
		gluggiSkilabodaSkjoda.setText(R.string.gildi_i_metrum_slokkva_a_hringingunni);
		gluggiSkrifaStefnuTil.setText("");
		gluggiSkrifaStefnuFra.setText("");
		//
		if (gv.staerdGeymslu() > 0) hnitGPSvistad = true;
		else						hnitGPSvistad = false;
		//
		buinnAdTitra       = false;
		innanFridarSvaedis = false;
		vistaStuttaStund   = false;
		//
		/*
		   Get the location manager = Saekja stadsetninga-stjora =>
		 */
		locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
		/* 
		   Define the criteria how to select the location provider -> use
		   default
		   Islenska: Skilgr. nakv. hvernig a ad velja stadbundin GPS gjafi:
		 */
		Criteria criteria = new Criteria();
		provider = locationManager.getBestProvider(criteria, false);
		location = locationManager.getLastKnownLocation(provider);
		/*
		   Skilabod til notenda um ad notandinn getur LIKA VALID NYJA
		   ADGERD med thvi ad smella a "VAL-SMELLI" (MENU) og sidan valid
		   adgerd med "VAL-LISTA", sem birtist a nedri hluta skjasins.
		 */
		Toast.makeText(this, R.string.smellid_lika_menu_takkann,
				             Toast.LENGTH_LONG).show();
		/*
		   LESA SKJAL AF SD-KORTI SNJALL-SIMANS:
		   LESA AF GPS HNIT AF SKJALINU =>
		 */
		try 
        {
        	/*
        	   Lesa sidustu vistudu GPS hnit, nofn, stillingar o.fl.
        	 */
        	try 
        	{
				alltSkjalid = lesaSkjal(NAFN_SKJALS);
			}
        	catch (EkkertSkjalFinnstException ke) 
        	{ // TODO
        		// Lagmarks strengur til thess ad bua til "toman" lista =>
        		alltSkjalid = SAMA_SEM_TOMUR_LISTI;
        		//
        		Toast.makeText(getApplicationContext(), 
      			       ke.toString(),
      			       Toast.LENGTH_LONG).show();
			} // try catch
        	//
        } // try
        catch (IOException e)
        {
        	// Lagmarks strengur til thess ad bua til "toman" lista =>
        	alltSkjalid = SAMA_SEM_TOMUR_LISTI;
        } // try catch
		//
		/*
		   LESA SKJAL AF SD-KORTI SNJALL-SIMANS:
		   LESA AF STILLINGA SNJALL-SIMANS (VENJL. EDA VINNU-SIMI) =>
		 */
		try 
		{
			/*
     	    Lesa sidustu stillingar (vinnu-simi eda venjl. simi)
			 */
			try 
			{
				stilling    = lesaSkjal(NAFN_STILLINGA);
			}
			catch (EkkertSkjalFinnstException ke) 
			{
				// Venjl. stilling snjall-simans:
				stilling = VENJL_SIMI;
				//	
				Toast.makeText(getApplicationContext(), 
						ke.toString(),
						Toast.LENGTH_LONG).show();
			} // try catch
			//
		} // try
		catch (IOException e)
		{
			// Venjl. stilling snjall-simans:
			stilling = VENJL_SIMI;
			/*
     	    Eftirfarandi skilabod birtist vid
     	   	fyrstu notkun Hazir a farsimanum.
			 */
			Toast.makeText(getApplicationContext(), 
					R.string.siminn_fer_a_thogn_ef_vistad_er,
					Toast.LENGTH_LONG).show();
		} // try catch
		//
		//
		/*
		   LESA SKJAL AF SD-KORTI SNJALL-SIMANS:
		   LESA AF STILLINGA SNJALL-SIMANS (VISTA STUTT. EDA LENGUR) =>
		 */
		try 
		{
			/*
     	    Lesa sidustu stillingar (vinnu-simi eda venjl. simi)
			 */
			try 
			{
				tegundVistunar  = lesaSkjal(NAFN_TEG_VISTUNAR);
				//
				if (tegundVistunar.equals(VISTA_STUTT))
				{
					vistaStuttaStund = true;
				}
				else
				{
					vistaStuttaStund = false;
				} // if else
			} // try
			catch (EkkertSkjalFinnstException ke) 
			{
				// Venjl. stilling snjall-simans:
				tegundVistunar   = VISTA_LENGUR;
				vistaStuttaStund = false;
				//	
				Toast.makeText(getApplicationContext(), 
						ke.toString(),
						Toast.LENGTH_LONG).show();
			} // try catch
			//
		} // try
		catch (IOException e)
		{
			// Venjl. stilling snjall-simans:
			tegundVistunar   = VISTA_LENGUR;
			vistaStuttaStund = false;
			//
		} // try catch
		//
		//
		//
		/*
		   LESA SKJAL AF SD-KORTI SNJALL-SIMANS:
		   LESA AF STILLINGA RADIUSAR "ut fra fridar/hringi-svaedis =>
		 */
		try 
		{
			/*
     	    Lesa sidustu stillingar (radius a strengja tagi)
			 */
			try 
			{
				stillaRadius = lesaSkjal(NAFN_STILLA_RADIUS);
				fridurOgRo = (double)Double.parseDouble(stillaRadius);
				skrifaRadius.setText(stillaRadius);
				skrifaRadius.setTextColor(0xffffffbb); // blatt.
				radiusSleginInn = stillaRadius;
			}
			catch (EkkertSkjalFinnstException ke) 
			{
				// Venjl. stilling snjall-simans = RADIUS = 100 metrar:
				stillaRadius = "100.0";
				radiusSleginInn = stillaRadius;
				skrifaRadius.setText("100");
				skrifaRadius.setTextColor(0xffffffdd); // graent.
				//
				fridurOgRo = 100.0; // metrar.
				//	
				Toast.makeText(getApplicationContext(), 
						ke.toString(),
						Toast.LENGTH_LONG).show();
			} // try catch
			//
		} // try
		catch (IOException e)
		{
			// Venjl. stilling snjall-simans:
			stillaRadius = "100.0";
			skrifaRadius.setText("100");
			skrifaRadius.setTextColor(0xffffffdd); // graent.
			//
			fridurOgRo = 100.0; // metrar.
			radiusSleginInn = stillaRadius;
			//
			/*
     	    Eftirfarandi skilabod birtist vid
     	   	fyrstu notkun Hazir a farsimanum.
			 */
			Toast.makeText(getApplicationContext(), 
					R.string.vistad_svaedi_sama_sem_100_m_radius,
					Toast.LENGTH_LONG).show();
		} // try catch
		//
		//
		// Stilla snjall-simnaum, sem venjulegur snjall-simi eda vinnu-simi.
		//
		/*
		   A medan ad Hazir forritid er i gangi =>
		   Skiptir snjallsiminn milli thess ad hringja ha-stoefum eda
		   stein-theigir, eftir thvi vid hvada adstaedur eigi vid, svo sem
		   ef ad notandinn er staddur i helgum reit, svo sem i fridhelgi
		   eda kominn ut fyrir thad svaedi og langar sjuklega til thess
		   ad fa goda sim-hringingu EDA OFUGT ef ad um er AD RAEDA =>
		   TIL DAEMIS vinnusimi, sem adeins a ad hringja a vinnustadnum
		   eda vinnustodum a vinnutima EN EKKI utan vinnustadarins,
		   sem daemi.
		   
		   Upphafsstillingin er midad vid ad folk vill fa frid fyrir
		   hringingum (sem er sennilega i flestum tilfellum, nema
		   med vinnusimum) =>
		 */
		// TODO THULA-THRIF MOGULEG HER BYRJA =>
		//
		if (stilling.equals(VENJL_SIMI))
		{   // Snjall-siminn stilltur, sem venjulegur simi =>
			// protected void stillaSnjallsimannSem(VENJL_SIMI);
			if(tegundVistunar.equals(VISTA_STUTT))
			{
				grunnRammi.setBackgroundColor(0xff440044); // Bla-berja_litur.
			}
			else
			{
				grunnRammi.setBackgroundColor(0xff000077); // Djup-blar.
			} // if else
			//
			hringjaTakki.setText(R.string.thoegn);
			nyHringingaMata    = LATA_THEGJA;
			fyrriHringingaMata = LATA_HRINGJA;
			audiomanager.setRingerMode(fyrriHringingaMata);
			Toast.makeText(getApplicationContext(),
					R.string.siminn_fer_a_thogn_ef_vistad_er,
					Toast.LENGTH_LONG).show();
		}
		else if (stilling.equals(VINNU_SIMI))
		{   // Snjall-siminn stilltur, sem vinnu-simi =>
			grunnRammi.setBackgroundColor(0xff004444);
			if(tegundVistunar.equals(VISTA_STUTT))
			{
				grunnRammi.setBackgroundColor(0xff444400); // Deokk_gulur "Kiwi".
			}
			else
			{
				grunnRammi.setBackgroundColor(0xff004444); // Blad_graenn.
			} // if else
			//
			hringjaTakki.setText(R.string.hringja);
			nyHringingaMata    = LATA_HRINGJA;
			fyrriHringingaMata = LATA_THEGJA;
			audiomanager.setRingerMode(fyrriHringingaMata);
			Toast.makeText(getApplicationContext(),
					R.string.siminn_fer_a_hringingu_ef_vistad_er,
					Toast.LENGTH_LONG).show();
		}
		else
		{   // Sjalf-gefid => venjulegur snjall-simi =>
			grunnRammi.setBackgroundColor(0xff000077);
			hringjaTakki.setText(R.string.thoegn);
			nyHringingaMata    = LATA_THEGJA;
			fyrriHringingaMata = LATA_HRINGJA;
			audiomanager.setRingerMode(fyrriHringingaMata);
			Toast.makeText(getApplicationContext(),
					R.string.siminn_fer_a_thogn_ef_vistad_er,
					Toast.LENGTH_LONG).show();
		} // if else if else
		//
		/*
		   Setja alla GPS upplysinga ut a tengda lista =>
		 */
		if (!(alltSkjalid == SAMA_SEM_TOMUR_LISTI))
		{
			gv.lesaGPSstillingar(alltSkjalid);
		} // if
		else
		{
			// Lagmarks strengur til thess ad bua til toman lista =>
			gv.lesaGPSstillingar(SAMA_SEM_TOMUR_LISTI);
			//
			Toast.makeText(getApplicationContext(), 
					R.string.enginn_gps_hnit_eru_vistud,
	 			    Toast.LENGTH_LONG).show();
		} // if else
		//
		/*
		   Initialize the location fields
		   Undirbua stadsetningu svaedisins
		 */
		if (location != null)
		{
			gildiBrdGrDD       = (double) (location.getLatitude());
			gildiLngGrDD       = (double) (location.getLongitude());
			/*
			   Gefa fyrirfram gildi fyrir vidfangsbreytur
			   fyrir veldis-utjofnun, sja nedar.
			 */
			stX                = gildiBrdGrDD;
			stY                = gildiLngGrDD;
			//
			// Umreikna tugabrot gradur i minutur og sekundur:
			birtaGildiBrdGrDMS = ReikniStokkur.umreiknaFyrirMinSek(gildiBrdGrDD);
			birtaGildiLngGrDMS = ReikniStokkur.umreiknaFyrirMinSek(gildiLngGrDD);
			//
			// Birta ut i notendavidmoti: DMS (Heilar gradur, Minutur og Sekundur) utfaerzla:
			gluggiBrdGrDMS.setText(birtaGildiBrdGrDMS);
			gluggiLngGrDMS.setText(birtaGildiLngGrDMS);
			/*
			   DoubleDecimal utfaerzla:
			   Setja upp birtingarform (format) fyrir sekundur i lengdar og breiddargradum,
			   eins og tidkast i Bandarikjunum (mjog thaegilegt form):
			 */
			Locale.setDefault(Locale.US);
			// Setja formid a birtingu sekundnanna:
			df1 = new DecimalFormat("0.000000000");
			birtaGildiBrdGrDD = df1.format(gildiBrdGrDD);
			birtaGildiLngGrDD  = df1.format(gildiLngGrDD);
		    //
		    // Birta ut i notendavidmot: DD (Heilar gradur og tugabrot grada):
			gluggiBrdGrDD.setText(String.valueOf(birtaGildiBrdGrDD)); // DD
			gluggiLngGrDD.setText(String.valueOf(birtaGildiLngGrDD)); // DD
			//
			titraMorseE();
			//
		} // if (location != null)
		else
		{
			Toast.makeText(this, R.string.simastaura_gps_er_uti,
		             Toast.LENGTH_LONG).show();
			/*
			 *  Nuna adeins slokkva a GPShnitOgStefnaActivity (ekki eyda keyrzlu GPShnitOgStefnaActivity),
			 *  til thess ad haegt se ad fara tilbaka til GPShnitOgStefnaActivity, vegna
			 *  thess ad notandinn aetladi ad nota GPShnitOgStefnaActivity, en thad
			 *  vantadi thessa stundina ad na sambandi vid Simastaura GPS veitu.
			 */
			finish();
			/*
			   Visathula: Fara yfir a ramma til ad keyra "HazirActivity",
			   ef ad simastaura GPS dytti ut =>
			 */
			Intent intenti = new Intent(getApplicationContext(),
					is.Hazir.SatGPS.HazirActivity.class);
			this.startActivityForResult(intenti, 0);
			//
		} // if else EKKI => if (location != null)
		//
		// 4 Takkar: "VISTA", "STUTT", "EYDA" og "THOEGN" = (R.string.thogn).
		// 1. "VISTA" er her =>
		vistaTakki.setOnClickListener(new View.OnClickListener()
		{
			public void onClick(View v)
			{
				skapaSpurninguUmAdVista("HAZIR",
				 					    "VISTA STAÐSETNINGU ?",
									    0xff004444,        // graenn litur bakgrunns
				                        0xff000077,        // blar   litur bakgrunns
				                        0xffffffbb,        // blar   textalitur
				                        "VISTA STUTTLEGA", // Textinn sem birtist a hnappa
				                        VISTA_LENGUR);     //         um ad vista stuttlega
				                                           // VISTA_LENGUR = teg vistunar.
				//
			} // onClick( . . . )
		}); // vistaTakki. . . .
		  //
		//
		// 2. "STUTT" er her =>
		stuttaStund.setOnClickListener(new View.OnClickListener()
		{
			public void onClick(View v)
			{
				skapaSpurninguUmAdVista("HAZIR",
 					    				"VISTA STUTTA STUND ?",
 					    				0xff444400,        // doekk-gulur (KIWI) litur bakgrunns
 					    				0xff440044,        // fjolu-blar (bla-ber) litur bakgrunns
 					    				0xffffffbb,        // blar   textalitur
 					    				"GEYMT STUTTLEGA", // Textinn sem birtist a hnappa
 					    				VISTA_STUTT);      //         um ad GEYMA stuttlega
                                                           // VISTA_STUTT = teg vistunar.
				//
			} // onClick( . . . )
		}); // stuttaStund[Takki]. . . .
		  //
		//
		// 3. "EYDA" er her =>
		eydaTakki.setOnClickListener(new View.OnClickListener()
		{
			public void onClick(View v)
			{
				skapaSpurninguUmAdEyda ("HAZIR",      // Titill
						                // 1. ordsending til notenda:
				                        "EYÐA NÚVERANDI STAÐ ?", // Spurning til notenda
				                        "Enginn staður er vistaður ennþá, " // Ordsending 
						                + "sem hægt er að þurrka út!",     // til notenda.
						                // 2. ordsending til notenda:
						                "Vinsamlegast farið í stillingar " +
						                "til þess að eyða staði, sem eru " +
						                "lengra í burtu frá núverandi stað!",     // til notenda.
						                //
						                0xffffffbb,              // Textalitur
				                        VISTA_LENGUR);          // Tegund vistunar 
				//
			} // onClick( . . . )
		}); // eydaTakki . . . .
		  //
		//
		// 4. "HRINGJA" er her =>
		hringjaTakki.setOnClickListener(new View.OnClickListener()
		{
			public void onClick(View v)
			{
				String aTakkanumStendur = hringjaTakki.getText().toString();
				//
				if (aTakkanumStendur.equals("HRINGJA")) // Fer i "THOGN"
				{
					skapaSpurninguUmAdBreytaHringingunni ("HAZIR",
					                                      "LÁTA ÞEGJA ?",
					                                      aTakkanumStendur);
				} // if
				else
				{
					skapaSpurninguUmAdBreytaHringingunni ("HAZIR",
                            							  "LÁTA HRINGJA ?",
                            							  aTakkanumStendur);
				} // if else
				//
			} // onClick(View v)
		}); // hringjaTakki
		  //
		//
		skrifaRadius.setOnTouchListener(new View.OnTouchListener()
		{
			public boolean onTouch(View v, MotionEvent event) 
			{
				// eydingarFyrirkomulag();
				// thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis(500);
				// TODO Taka burt ?  gv.eydaOllStok (en profa fyrst a-hrifin)
				try
				{
					gv.eydaOllStok();
				} catch (EkkertStakFinnstException e1) {
					e1.printStackTrace();
				}
				//
				if (event.getAction() == MotionEvent.ACTION_DOWN)
				{
					skrifaRadius.setTextColor(0xff00bbbb); // graenn texti.
				}
				else if (event.getAction() == MotionEvent.ACTION_UP)
				{
					skrifaRadius.setTextColor(0xff0000bb); // blar texti.
					//
					alert = new AlertDialog.Builder(GPShnitOgStefnaActivity.this).create();
					//   
					alert.setTitle("HAZIR");
					alert.setMessage("Slá inn nýjan radíus ?");
					//
					alert.setButton // "Adgerda-gryfja" byrjar =>
					("Já", new DialogInterface.OnClickListener()
					{
						public void onClick(DialogInterface dialog, int which) 
						{
							/*
				               Fastayrding: Notandinn er buinn ad yta a valhnappa til
				               thess ad vista breytingum a gildi radiusar =>
				             */
							Intent innslattarIntent =  null;
							innslattarIntent        =  new Intent(getBaseContext(), InnslattarActivity.class);
							innslattarIntent.putExtra("nuverandi_radius", fridurOgRo);
							startActivityForResult(innslattarIntent, 0);
							//
							// finish();
						}  // onClick(DialogInterface dialog, int which)
					}    // "Já", new DialogInterface.OnClickListener()
					); // alert.setButton <= "Adgerda-gryfja" endar.
					 //
					alert.setButton3
					("Nei", new DialogInterface.OnClickListener()
					{
						public void onClick(DialogInterface dialog, int which) 
						{
							dialog.cancel();
						}  // onClick(DialogInterface dialog, int which)
					}    // "Nei", new DialogInterface.OnClickListener()
					); // alert.setButton3
					 //
					alert.show();
					//
					timinnRennurUtEftir(10000, alert, t); // 10 sek.
					//
					//
					//
					//
					//
					/* TODO Taka burt eftir nanara profanir
					df2 = new DecimalFormat("0.0");
					//
					try
					{
						skrifaRadius.setTextColor(0xffffffbb); // blatt.
                        radiusSleginInn = (String)skrifaRadius.getText().toString();
						fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
						//
						// Kominn eina hring i kringum Jordina ???
						//
						if(fridurOgRo > HA_MARKS_RADIUS) fridurOgRo = HA_MARKS_RADIUS;
						radiusSleginInn = df2.format(fridurOgRo);
						skrifaSkjal(NAFN_STILLA_RADIUS, radiusSleginInn);
						titraMorseE();
					}
					catch (Exception e)
					{
						// Sjalf-gefin gildi (default):
						radiusSleginInn = "100.0";
						skrifaRadius.setText("100");
						skrifaRadius.setTextColor(0xff00dddd); // graent.
						//
						fridurOgRo = 100.0; // metrar.
						//
					} // try catch
					//
					// Forminu er sjalfvirkt lagad ef ad vidkomandi slaer inn of
					//   marga aukastafi.
					//   EINN aukastaf er gert rad fyrir (Murphys logmal "einu sinni en").
					//
					radiusSleginInn = df2.format(fridurOgRo);
					//
					skrifaRadius.setText(radiusSleginInn);
					gluggiSkilabodaSkjoda.setText("Gildi i metrum = " + radiusSleginInn);
					// <= TODO taka i burtu eftir nanara profanir
					*/
					//
				} // else if
				return false;
			} // onTouch( . . . )
		}); // skrifaRadius. . . . .
		  //
		//
	} // onCreate( . . . )
	//
	//
	// Notkun      skapaSpurninguUmAdVista("HAZIR",
	//									   "VISTA STAÐSETNINGU ?",
	//									    0xff004444, // graenn
	//                                      0xff000077, // blar
	//                                      0xffffffbb, // blar
	//                                     "VISTA STUTTLEGA",
	//                                      VISTA_LENGUR);
	//
	protected void skapaSpurninguUmAdVista (String titill,
	                             			String leggjaSpurningFyrirNotenda,
	                             			final  int    liturBakgrunns1,
	                             			final  int    liturBakgrunns2,
	                             			final  int    textaLitur,
	                             			final  String heitiVistunar,
	                             			final  String tegundVisturnar)
	{
		final AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle(titill);
		builder.setMessage(leggjaSpurningFyrirNotenda)
		.setCancelable(false)
		.setPositiveButton("Já", new DialogInterface.OnClickListener() {
			public void onClick(@SuppressWarnings("unused") final DialogInterface dialog,
					@SuppressWarnings("unused") final int id)
			{
				//                      graenn    , blar.
				vistunarFyrirkomulag(liturBakgrunns1, liturBakgrunns2, heitiVistunar);
				//
				skrifaRadius.setText(radiusSleginInn);
				skrifaRadius.setTextColor(textaLitur); // blatt.
				fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
				//
				skrifaSkjal(NAFN_TEG_VISTUNAR, tegundVisturnar);
				vistaStuttaStund = false;
				//
				launchGPShnitOgStefnuOptions();
				//
			} //
		}) // .setPositiveButton( . . . . . )
		.setNegativeButton("Nei", new DialogInterface.OnClickListener() {
			public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id)
			{
				dialog.cancel();
			}
		}); // .setNegativeButton( . . . . . )
		alert = builder.create();
		alert.show();
		//
		timinnRennurUtEftir(10000, alert, t); // 10 sek.
		//
	} // buildAlertMessageStore( . . . . . ) => skapaSpurninguUmAdVista( . . . . . )
	//
	//
	//
	// Notkun skapaSpurninguUmAdEyda
	//                     ("HAZIR",      // Titill
	//                      "EYÐA NÚVERANDI STAÐ ?", // Spurning til notenda
	//                      0xffffffbb,              // Textalitur
	//                      VISTA_LENGUR);           // Tegund vistunar 
	protected void skapaSpurninguUmAdEyda (String titill,
 										   String leggjaSpurningFyrirNotenda,
 										   String komaTilSkilaOrdSending01,
 										   String komaTilSkilaOrdSending02,
 										   final  int    textaLitur,
 										   final  String tegundVisturnar)
	{
		final AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle(titill);
		if(gv.tomGeymsla())
		{
			builder.setMessage(komaTilSkilaOrdSending01);
			//
			alert = builder.create();
			//
			alert.setButton(" Í lagi ! ", new DialogInterface.OnClickListener()
			{
				public void onClick(DialogInterface skilabod, int which) 
				{
				   skilabod.cancel();
				}
			}); // alert.setButton( . . . )
			  //
			//
			alert.show();
			//
			timinnRennurUtEftir(10000, alert, t); // 10 sek.: Gefa folki ruman tima
			//
		} // if(gv.tomGeymsla())
		else
		{
			if(innanFridarSvaedis)
			{
				builder.setMessage(leggjaSpurningFyrirNotenda)
				.setCancelable(false)
				.setPositiveButton("Já", new DialogInterface.OnClickListener() {
					public void onClick(@SuppressWarnings("unused") final DialogInterface dialog,
							@SuppressWarnings("unused") final int id)
					{
						eydingarFyrirkomulag();
						thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis(500);
						//
						skrifaRadius.setText(radiusSleginInn);
						skrifaRadius.setTextColor(textaLitur); // venjulega blar.
						fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
						//
						skrifaSkjal(NAFN_TEG_VISTUNAR, tegundVisturnar);
						vistaStuttaStund = false;
						//
					} //
				}) // .setPositiveButton( . . . . . )
				.setNegativeButton("Nei", new DialogInterface.OnClickListener() {
					public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id)
					{
						dialog.cancel();
					}
				}); // .setNegativeButton( . . . . . )
				alert = builder.create();
				alert.show();
				//
				timinnRennurUtEftir(10000, alert, t); // 10 sek.
				//
			} // if innanFridarSvaedis)
			else
			{
				builder.setMessage(komaTilSkilaOrdSending02);
				//
				alert = builder.create();
				//
				alert.setButton(" Í lagi ! ", new DialogInterface.OnClickListener()
				{
					public void onClick(DialogInterface skilabod, int which) 
					{
					   skilabod.cancel();
					}
				}); // alert.setButton( . . . )
				  //
				//
				alert.show();
				//
				timinnRennurUtEftir(10000, alert, t); // 10 sek.: Gefa folki ruman tima
				//
			} // else EKKI => if innanFridarSvaedis)
			//
		} // else EKKI => if(gv.tomGeymsla())
		//
		/*	
		builder.setMessage(leggjaSpurningFyrirNotenda)
		.setCancelable(false)
		.setPositiveButton("Já", new DialogInterface.OnClickListener() {
			public void onClick(@SuppressWarnings("unused") final DialogInterface dialog,
					@SuppressWarnings("unused") final int id)
			{
				eydingarFyrirkomulag();
				thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis(500);
				//
				skrifaRadius.setText(radiusSleginInn);
				skrifaRadius.setTextColor(textaLitur); // venjulega blar.
				fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
				//
				skrifaSkjal(NAFN_TEG_VISTUNAR, tegundVisturnar);
				vistaStuttaStund = false;
				//
			} //
		}) // .setPositiveButton( . . . . . )
		.setNegativeButton("Nei", new DialogInterface.OnClickListener() {
			public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id)
			{
				dialog.cancel();
			}
		}); // .setNegativeButton( . . . . . )
		alert = builder.create();
		alert.show();
		//
		timinnRennurUtEftir(10000, alert); // 10 sek.
		*/
		//
	} // buildAlertMessageStore( . . . . . ) => skapaSpurninguUmAdVista( . . . . . )
	//
    //
	// Notkun: skapaSpurninguUmAdBreytaHringingunni ("HAZIR",
	//                                               "LÁTA HRINGJA ?" // eda "LÁTA ÞEGJA ?"
	//                                               aTakkanumStendur);
	protected void skapaSpurninguUmAdBreytaHringingunni
											(String titill,
			   								 String leggjaSpurningFyrirNotenda,
			   								 final  String aTakkanumStendur)
	{
		final AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle(titill);
		builder.setMessage(leggjaSpurningFyrirNotenda)
		.setCancelable(false)
		.setPositiveButton("Já", new DialogInterface.OnClickListener() {
			public void onClick(@SuppressWarnings("unused") final DialogInterface dialog,
					@SuppressWarnings("unused") final int id)
			{
				if (aTakkanumStendur.equals("HRINGJA")) // Fer i "THOGN"
				{   // Fer i "THEGJA" ef eitthvad kemur upp a annars latinn hringja =>
					audiomanager.setRingerMode(LATA_HRINGJA);
					// Eiga vid venjulegan sima (folk vill fa frid a voldum stodum)
					//
					hringjaTakki.setText(R.string.thoegn);
					nyHringingaMata    = LATA_THEGJA;
					fyrriHringingaMata = LATA_HRINGJA;
					stilling = VENJL_SIMI;
					skrifaSkjal(NAFN_STILLINGA, VENJL_SIMI);
					//
					if (!(vistaStuttaStund))
					{ //                                blar
						grunnRammi.setBackgroundColor(0xff000077);
						skrifaSkjal(NAFN_TEG_VISTUNAR, VISTA_LENGUR);
					}
					else
					{ //                              fjolu-blar
						grunnRammi.setBackgroundColor(0xff440044);
						skrifaSkjal(NAFN_TEG_VISTUNAR, VISTA_STUTT);
					} // if else
					//
					gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_kveikt);
					gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
					//
					gluggiSkilabodaSkjoda.setText(R.string.nuna_er_kveikt_a_hringingunni);
					titraMorseK(); // "K" a vid ef eingongu er smellt "HRINGJA"
				} // if (aTakkanumStendur.equals(R.string.thegja))
				else
				{   // Fer i "HRINGJA" ef eitthvad kemur upp a annars latinn thegja =>
					audiomanager.setRingerMode(LATA_THEGJA);
					// 
					// Vinnu-sima (adeins svara a vinnu-stad eda vinnu-stodum a vinnutima)
					hringjaTakki.setText(R.string.hringja);
					nyHringingaMata    = LATA_HRINGJA;
					fyrriHringingaMata = LATA_THEGJA;
					stilling = VINNU_SIMI;
					skrifaSkjal(NAFN_STILLINGA, VINNU_SIMI);
					//
					if (!(vistaStuttaStund))
					{ //                                graenn
						grunnRammi.setBackgroundColor(0xff004444);
						skrifaSkjal(NAFN_TEG_VISTUNAR, VISTA_LENGUR);
					}
					else
					{ //                              dokk-gulur
						grunnRammi.setBackgroundColor(0xff444400);
						skrifaSkjal(NAFN_TEG_VISTUNAR, VISTA_STUTT);
					} // if else
					//
					gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_slokkt);
					gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
					//
					gluggiSkilabodaSkjoda.setText(R.string.nuna_er_slokkt_a_hringingunni);
					titraMorseR(); // "R" a vid ef eingongu er smellt "THEGJA"
					skrifaRadius.setText(radiusSleginInn);
					skrifaRadius.setTextColor(0xffffffbb); // blatt.
					fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
				} // else EKKI if (aTakkanumStendur.equals(R.string.thegja))
				//
			} //
		}) // .setPositiveButton( . . . . . )
		.setNegativeButton("Nei", new DialogInterface.OnClickListener() {
			public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id)
			{
				dialog.cancel();
			}
		}); // .setNegativeButton( . . . . . )
		alert = builder.create();
		alert.show();
		//
		timinnRennurUtEftir(10000, alert, t); // 10 sek.
		//
	} // skapaSpurninguUmAdBreytaHringunni( . . . . . )
	//
	//
	//
	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent data) 
	{
		super.onActivityResult(requestCode, resultCode, data);
		Bundle extras = data.getExtras();
		if (extras.getBoolean("framkvaema_adgerd", true)) 
		{
			adgerdFramkvaemt = extras.getBoolean("framkvaema_adgerd", false);
			fridurOgRo       = extras.getDouble ("nytt_radius_gildi", 100.0);
			radiusSleginInn  = extras.getString ("nyr_radius");
			//
			try
			{
				skrifaRadius.setTextColor(0xffffffbb); // blatt.
				/*
				skrifaRadius.setTextColor(0xffffffbb); // blatt.
                radiusSleginInn = (String)skrifaRadius.getText().toString();
				fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
				*/
				/*
				 * Kominn eina hring i kringum Jordina ???
				 */
				// if(fridurOgRo > HA_MARKS_RADIUS) fridurOgRo = HA_MARKS_RADIUS;
				// radiusSleginInn = df2.format(fridurOgRo);
				skrifaSkjal(NAFN_STILLA_RADIUS, radiusSleginInn);
				titraMorseE();
			}
			catch (Exception e)
			{
				// Sjalf-gefin gildi (default):
				radiusSleginInn = "100.0";
				skrifaRadius.setText("100");
				skrifaRadius.setTextColor(0xff00dddd); // graent.
				//
				fridurOgRo = 100.0; // metrar.
				//
			} // try catch
			//
			/* Forminu er sjalfvirkt lagad ef ad vidkomandi slaer inn of
			   marga aukastafi.
			   EINN aukastaf er gert rad fyrir (Murphys logmal "einu sinni en").
			 */
			/*
			radiusSleginInn = df2.format(fridurOgRo);
			*/
			skrifaRadius.setText(radiusSleginInn);
			gluggiSkilabodaSkjoda.setText("Gildi i metrum = " + radiusSleginInn);
			//
		} // if (extras.getBoolean("add_new", false))
		else
		{
			// Tomur = PASS.
		} // if else
		//
	} // onActivityResult( . . . . . )
	//
	//
	//
	//
	//
	//
    //
	@Override
	protected void onDestroy() 
	{
		super.onDestroy();
		snuaSimanum(t, alert);
		//
 	} // onDestroy()
 	//
 	/**
 	 * Notkun: snuaSimanum();
 	 * 
 	 * Adgerdin "snuaSimanum" einkennist ad thvi
 	 * ad notadur er adgerd "t.cansel" til thess
 	 * ad stoedva gang timafyrirkomulags.
 	 * 
 	 * Tilgangur: til thess ad hindra ad forritid
 	 *            krassi thegar simanum er snuinn
 	 *            lodrjett eda larjett ADUR EN AD
 	 *            einhver valgluggi med smellirofum
 	 *            er horfinn.
 	 */
 	protected void snuaSimanum(Timer t, 
 			                   AlertDialog alert)
 	{
 		alert.dismiss();
 		t.purge();
 		t.cancel(); // Stoedva gang timafyrirkomulags
 		            // til thess ad hindra ad forritid
 		            // krassi, thegar simanum er snuinn.
 		//
 	} // snuaSimanum()
 	//
 	//
 	//
 	//
 	//
	//
	//
	// /* Fyrirspurn um uppfaerzlu vid raesingu = Request updates at startup */
	@Override
	protected void onResume() {
		super.onResume();
		//                                    GPS-veita mSek meter = lagmarks-hreyfingu.
		locationManager.requestLocationUpdates(provider, 400, 1, this);
	}
	/* Fra heimasidunni med thulu um "LocationListener": 
	   Remove the locationlistener updates when Activity is paused
	 */
	@Override
	protected void onPause() 
	{
		super.onPause();
		locationManager.removeUpdates(this);
	} // onPause
	//
	/**
	 * Fyrirmynd a ensku fengin af netinu:
	 * Notkun: Adferdin "onLocationChanged fer sjalfvirkt afstad,
	 *         um leid og nytt GPS hnit kemur inn.
	 * Fyrir:  Upplysinga um nytt GPS hnit kominn inn, sem gildi
	 *         i vidfangsbreytunni "location".
	 * Eftir:  GPS hnit uppfaert med tilheyrandi titringi i Morsi:
	 *         "R" = .-. ef ad snjallsiminn er fyrir innan "frid-helgi",
	 *         en "K" = -.- ef ad snjallsiminn sje fyrir utan.  
	 */
	public void onLocationChanged(Location location)
    {
            double gildiBrdGrDDgeymtStak =  0.0;
            double gildiLngGrDDgeymtStak =  0.0;
            double alfa                  = 1.65;
            double beta                  = 0.65;
            //
            try
            {
                    gildiBrdGrDDvistud = gildiBrdGrDD;
                    gildiLngGrDDvistud = gildiLngGrDD;
            }
            catch(Exception e)
            {
                    gildiBrdGrDDvistud = 0.0;
                    gildiLngGrDDvistud = 0.0;
            } // try catch
             //
            //
            gildiBrdGrDD = (double) (location.getLatitude());
            gildiLngGrDD = (double) (location.getLongitude());
            //
            birtaGildiBrdGrDMS = ReikniStokkur.umreiknaFyrirMinSek(gildiBrdGrDD);
            birtaGildiLngGrDMS = ReikniStokkur.umreiknaFyrirMinSek(gildiLngGrDD);
            //
            // Birta ut i notendavidmoti: DMS (Heilar gradur, Minutur og Sekundur) utfaerzla:
            gluggiBrdGrDMS.setText (birtaGildiBrdGrDMS);
            gluggiLngGrDMS.setText(birtaGildiLngGrDMS);
            //
            // DoubleDecimal utfaerzla:
            birtaGildiBrdGrDD = df1.format(gildiBrdGrDD);
            birtaGildiLngGrDD = df1.format(gildiLngGrDD);
            //
            // Birta ut i notendavidmot: DD (Heilar gradur og tugabrot grada):
            gluggiBrdGrDD.setText(String.valueOf(birtaGildiBrdGrDD)); // DD
            gluggiLngGrDD.setText(String.valueOf(birtaGildiLngGrDD)); // DD
            //
            vistaTakki.setText(R.string.vista);
            eydaTakki.setText (R.string.eyda);
            //
            if(hnitGPSvistad)
            {
                    birtaGildiBrdGrDMSvistud = ReikniStokkur.umreiknaFyrirMinSek(gildiBrdGrDDvistud);
                    birtaGildiLngGrDMSvistud = ReikniStokkur.umreiknaFyrirMinSek(gildiLngGrDDvistud);
                    //
                    // Birta ut i notendavidmoti: DMS (Heilar gradur, Minutur og Sekundur) utfaerzla:
                    gluggiBrdGrDMSvistud.setText(birtaGildiBrdGrDMSvistud);
                    gluggiLngGrDMSvistud.setText(birtaGildiLngGrDMSvistud);
                    //
                    // DoubleDecimal utfaerzla:
                    birtaGildiBrdGrDDvistud = df1.format(gildiBrdGrDDvistud);
                    birtaGildiLngGrDDvistud = df1.format(gildiLngGrDDvistud);
                    //
                    // Birta ut i notendavidmot: DD (Heilar gradur og tugabrot grada):
                    gluggiBrdGrDDvistud.setText(String.valueOf(birtaGildiBrdGrDDvistud)); // DD
                    gluggiLngGrDDvistud.setText(String.valueOf(birtaGildiLngGrDDvistud)); // DD
                    //
                    df2 = new DecimalFormat("0.0");
                    //
                    vegalengd = (double)ReikniStokkur.vegalengdGPS(gildiBrdGrDDvistud, gildiBrdGrDD,
                                                                                                               gildiLngGrDDvistud, gildiLngGrDD);
                    stefna    = (double)ReikniStokkur.stefnaTilGPS(gildiBrdGrDDvistud, gildiBrdGrDD,
                                                                                       gildiLngGrDDvistud, gildiLngGrDD);
                    birtaVegalengd    = df2.format(vegalengd);
                    birtaStefnuTilDMS = ReikniStokkur.umreiknaFyrirMinSek(stefna);
                    //
                    stefna    = (double)ReikniStokkur.stefnaFraGPS(gildiBrdGrDDvistud, gildiBrdGrDD,
                                                                                                               gildiLngGrDDvistud, gildiLngGrDD);
                    birtaStefnuFraDMS = ReikniStokkur.umreiknaFyrirMinSek(stefna);
                    /*
                       Adeins gefa til kynna ad nytt GPS hnit er komid inn en ekki nein hnit enn-tha,
                       slikar upplysinga mun adeins vera ruglandi, thar sem adeins er um ad raeda
                       fjarlaegd milli sima-staura a hverjum tima.
                    */ 
                    gluggiFjarlagdFraGPShnitiKynna.setText("");
                    gluggiFjarlagdFraGPShnitiBirta.setText("");
                    gluggiSkrifaStefnuTil.setText("");
                    gluggiSkrifaStefnuFra.setText("");
                    gluggiSkilabodaSkjoda.setText(R.string.nytt_hnit_komid_inn);
                    //
                    double[] geymtGPShnit =finnaGPShnitInnanFridarSvaedis(gildiBrdGrDDgeymtStak,
                                                                          gildiLngGrDDgeymtStak,
                                                                          alfa, beta, stilling);
                    // Skilabreytur ur adferdinni: gildiBrdGrDDgeymtStak og gildiLngGrDDgeymtStak
                    //
                    // Geymt stoek ur gagnageymslunni
                    gildiBrdGrDDgeymtStak = geymtGPShnit[0];
                    gildiLngGrDDgeymtStak = geymtGPShnit[1];
                    //
                    /* Fyrirkomulag fyrir veldis-utjofnun til thess ad sim-notandinn
                       gaeti fengid oruggara frid fyrir hringingum =>
                     */
                    if(ReikniStokkur.fridHelgi(fridurOgRo, gildiBrdGrDDgeymtStak, stX,
                                                           gildiLngGrDDgeymtStak, stY))
                    {
                            /*
                             *  Enginn vegalengd birt nje stefnu, nema ad buid sje ad vista sjer stad
                             *  stad til thess ad fa hringingu eda fa frid fyrir simhringingum.
                             *  Um leid og slik stada er, sem fyrr segir, tha ma birta vegalend fra
                             *  vistudum stad til thess ad notandinn getur vitad, hvort ad vidkomandi
                             *  sje innan svaedisins.
                             */
                            gluggiFjarlagdFraGPShnitiKynna.setText(R.string.fra_stadnum);
                            gluggiFjarlagdFraGPShnitiBirta.setText(birtaVegalengd + "m");
                            gluggiSkrifaStefnuTil.setText("Stefna til " + birtaStefnuTilDMS);
                            gluggiSkrifaStefnuFra.setText("Stefna fra " + birtaStefnuFraDMS);
                            gluggiSkilabodaSkjoda.setText(R.string.nytt_hnit_komid_inn);
                            //
                            // Slokkt a hringingunni = graenn/gulur grunnRammi EDA kveikt = (fjolu)blar grunnRammi =>
                            String aTakkanumStendur = hringjaTakki.getText().toString();
                            /*
                               Innan fridar/hringi-svaedis:                  blar   , fjolu-blar,   graenn  ,   gulur
                             */
                            litaBakgrunninn( aTakkanumStendur, "HRINGJA", 0xff000077, 0xff440044, 0xff004444, 0xff444400);
                            //
                            hnitGPSvistad = true;
                            /*
                               Eftirfarandi thula, er til thess ad kanna a-hrif veldis-utjofnun a
                               raunverulegu vegalengd fra sidasta simastaura GPS hniti,
                               sem inn kom.
                             */
                            veldisutjafnadri_vegalengd = 
                                            (double)ReikniStokkur.vegalengdGPS(gildiBrdGrDDgeymtStak, stX,
                                                                                       gildiLngGrDDgeymtStak, stY);
                            //
                            birtaVeldisutjafnadriVegalengd    = df2.format(veldisutjafnadri_vegalengd);
                            // Fa lanada gluggi fyrir stefnu fra sidasta GPS hniti => fyrir forvitnis sakir =>
                            gluggiSkrifaStefnuFra.setText("Utjafna = " + birtaVeldisutjafnadriVegalengd + "m");
                            //
                            /*
                               Lata siminn fara a thogn/hringing a medan ad siminn er staddur innan fridar-svaedis EN
                               hins vegar ad lata siminn adeins titra EINU sinni thegar farid er inn i
                               "fridhelgina" og svo EINU sinni, thegar farid er ur fridhelginni,
                               sja adeins nedar (um 30 linur, eins og er nuna). Fridhelgi gaeti lika verid
                               oefugt midad vid, hvad valid var a takkanum "HRINGJA" eda "THOEGN".
                             */
                            audiomanager.setRingerMode(nyHringingaMata);
                            //
                            // NOTANDINN ER KOMINN INN I FRIDAR EDA HRINGI-SVAEDID =>
                            // -    -    -    -    -    -    -    -    -    -    -    -
                            //
                            if(!innanFridarSvaedis)
                            {
                                    buinnAdTitra       = false;
                                    innanFridarSvaedis = true;
                                    //
                                    if (aTakkanumStendur.equals("HRINGJA"))
                                    {
                                        	titraMorseK();
                                        	//
                                        	if (!(vistaStuttaStund))
                                            { //                                 blar
                                                    grunnRammi.setBackgroundColor(0xff000077);
                                            }
                                            else
                                            { //                              fjolu-blar
                                                    grunnRammi.setBackgroundColor(0xff440044);
                                            } // if else
                                    }
                                    else // sama sem "THOEGN"
                                    {
                                            titraMorseR();
                                            //
                                            if (!(vistaStuttaStund))
                                            { //                               graenn
                                                    grunnRammi.setBackgroundColor(0xff004444);
                                            }
                                            else
                                            { //                              dokk-gulur
                                                    grunnRammi.setBackgroundColor(0xff444400);
                                            } // if else
                                    } // if else
                                    //
                                    // Saekja gildi ur SD-Kortinu ur thvi ad thau eru fyrir hendi her =>
                                    gildiBrdGrDDvistud = gildiBrdGrDDgeymtStak;
                                    gildiLngGrDDvistud = gildiLngGrDDgeymtStak;
                            } // if(!innanFridarSvaedis)
                    	} // if(ReikniS . . . )
                    	else // UTAN fridar/hringi svaedis =>
                    	{
                            // Hringingin sett aftur, eins og hun var = aftur blar EDA graen grummRammi:
                            // Slokkt a hringingunni = graenn grunnRammi EDA kveikt = blar grunnRammi =>
                            String aTakkanumStendur = hringjaTakki.getText().toString();
                            //
                            innanFridarSvaedis = false;
                            //
                            if(!buinnAdTitra)
                            {
                            	audiomanager.setRingerMode(fyrriHringingaMata);
                            	buinnAdTitra = true;
                            	//
                            	if (aTakkanumStendur.equals("HRINGJA")) // ut ur hringi-svaedinu.
                            	{
                            		titraMorseR();
                            		//                              graenn
                            		grunnRammi.setBackgroundColor(0xff004444);
                            	}
                            	else // Sama og "THOEGN" kominn ut ur fridar-svaedinu
                            	{
                            		titraMorseK();
                            		//                               blar
                            		grunnRammi.setBackgroundColor(0xff000077);
                            	} // if else
                            	// Eyda stadsetninguna um leid og
                            	// notandinn er kominn ut fyrir svaedid =>
                            	if (vistaStuttaStund)
                            	{
                            		String alltSkjalidUtiEinumStreng = SAMA_SEM_TOMUR_LISTI;
                            		//
                            		// TODO Athuga eydingarFyrirkomulag();
                            		// TODO Athuga thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis(500);
                            		// Thad er naegilegt ad eyda sidasta vistada stadnum. Thessi sidasti
                            		// vistadur stadur er o-hadur thvi, hvort annann vistadur stadur hefdi
                            		// verid na-laegt stadnum, sem sidast var vistad.
                            		// Thetta fyrirkomulag hentar vel, ef stutt eru milli vistadra stada
                            		// midad vid ad stadsetninga hnit simastaura er ekki eins na-kvaem og
                            		// med adstod GPS.
                            		try 
                            		{
										gv.eydaNyjastaStakinu();
									} catch (EkkertStakFinnstException e1) 
									{
										e1.printStackTrace();
									} // try catch
                            		//
                            		try 
                            		{
                            			alltSkjalidUtiEinumStreng = gv.ollStokUtiStrengjaBreytu();
                            		}
                            		catch (EkkertStakFinnstException e)
                            		{
                            			// TODO Auto-generated catch block
                            			e.printStackTrace();
                            		}
                            		skrifaSkjal(NAFN_SKJALS, alltSkjalidUtiEinumStreng);
                            	} // if
                            	skrifaSkjal(NAFN_TEG_VISTUNAR, VISTA_LENGUR);
                            	vistaStuttaStund = false;
                            	//
                            } // if(!buinnAdTitra)
                    } // if if(ReikniS . . . ) else
            } // if(hnitGPSvistad)
            else
            { // else = ef EKKI (hnitGPSvistad)
                    gluggiFjarlagdFraGPShnitiKynna.setText("");
                    gluggiFjarlagdFraGPShnitiBirta.setText("");
                    gluggiSkrifaStefnuTil.setText("");
                    gluggiSkrifaStefnuFra.setText("");
                    gluggiSkilabodaSkjoda.setText(R.string.nytt_hnit_komid_inn);
                    //
                    double[] geymtGPShnit =finnaGPShnitInnanFridarSvaedis(gildiBrdGrDDgeymtStak,
                                                                                                                              gildiLngGrDDgeymtStak,
                                                                                                                              alfa, beta, stilling);
                    gildiBrdGrDDgeymtStak = geymtGPShnit[0];
                    gildiLngGrDDgeymtStak = geymtGPShnit[1];
                    //
                    if(ReikniStokkur.fridHelgi(fridurOgRo, gildiBrdGrDDgeymtStak, stX,
                                                                                               gildiLngGrDDgeymtStak, stY))
                    {
                    	/*
                       	  A.m.k. eitt geymt fridar-svaedi EDA hringi-svaedi lendir inn fyrir nuverandi
                          radius, sem notandinn er staddur i thessa stundina =>
                       
                          Slokkt a hringingunni = graenn grunnRammi EDA kveikt = blar grunnRammi =>
                     	*/
                    	String aTakkanumStendur = hringjaTakki.getText().toString();
                    	//
                    	/*
                          Innan fridar/hringi-svaedis:                  blar   , fjolu-blar,   graenn  ,   gulur
                    	 */
                    	litaBakgrunninn( aTakkanumStendur, "HRINGJA", 0xff000077, 0xff440044, 0xff004444, 0xff444400);
                    	//
                    	hnitGPSvistad = true;
                    	//
                    	df2 = new DecimalFormat("0.0");
                    	//
                    	vegalengd = (double)ReikniStokkur.vegalengdGPS(gildiBrdGrDDgeymtStak, gildiBrdGrDD,
                                                                       gildiLngGrDDgeymtStak, gildiLngGrDD);
                    	stefna    = (double)ReikniStokkur.stefnaTilGPS(gildiBrdGrDDgeymtStak, gildiBrdGrDD,
                                                                       gildiLngGrDDgeymtStak, gildiLngGrDD);
                    	birtaVegalengd    = df2.format(vegalengd);
                    	birtaStefnuTilDMS = ReikniStokkur.umreiknaFyrirMinSek(stefna);
                    	//
                    	stefna    = (double)ReikniStokkur.stefnaFraGPS(gildiBrdGrDDgeymtStak, gildiBrdGrDD,
                                                                       gildiLngGrDDgeymtStak, gildiLngGrDD);
                    	birtaStefnuFraDMS = ReikniStokkur.umreiknaFyrirMinSek(stefna);
                    	//
                    	gluggiFjarlagdFraGPShnitiKynna.setText(R.string.fra_stadnum);
                    	gluggiFjarlagdFraGPShnitiBirta.setText(birtaVegalengd + "m");
                    	//
                    	gluggiSkrifaStefnuTil.setText("Stefna til " + birtaStefnuTilDMS);
                    	/*
                          Eftirfarandi thula, er til thess ad kanna a-hrif veldis-utjofnun a
                          raunverulegu vegalengd fra sidasta simastaura GPS hniti,
                          sem inn kom.
                    	 */
                    	veldisutjafnadri_vegalengd = 
                    			(double)ReikniStokkur.vegalengdGPS(gildiBrdGrDDgeymtStak, stX,
                                                                   gildiLngGrDDgeymtStak, stY);
                    	//
                    	birtaVeldisutjafnadriVegalengd    = df2.format(veldisutjafnadri_vegalengd);
                    	// Fa lanada gluggi fyrir stefnu fra sidasta GPS hniti => i tilrauna skyni =>
                    	gluggiSkrifaStefnuFra.setText("Utjafna = " + birtaVeldisutjafnadriVegalengd + "m");
                    	//
                    	// Birtingar a geymdum gognum i tengdum listum =>
                    	String birtaGildiBrdGrDMSgeymt = ReikniStokkur.umreiknaFyrirMinSek(gildiBrdGrDDgeymtStak);
                    	String birtaGildiLngGrDMSgeymt = ReikniStokkur.umreiknaFyrirMinSek(gildiLngGrDDgeymtStak);
                    	//
                    	// Birta ut i notendavidmoti: DMS (Heilar gradur, Minutur og Sekundur) utfaerzla:
                    	gluggiBrdGrDMSvistud.setText(birtaGildiBrdGrDMSgeymt);
                    	gluggiLngGrDMSvistud.setText(birtaGildiLngGrDMSgeymt);
                    	//
                    	// DoubleDecimal utfaerzla:
                    	String birtaGildiBrdGrDDgeymt = df1.format(gildiBrdGrDDgeymtStak);
                    	String birtaGildiLngGrDDgeymt = df1.format(gildiLngGrDDgeymtStak);
                        //
                        // Birta ut i notendavidmot: DD (Heilar gradur og tugabrot grada):
                    	gluggiBrdGrDDvistud.setText(String.valueOf(birtaGildiBrdGrDDgeymt)); // DD
                    	gluggiLngGrDDvistud.setText(String.valueOf(birtaGildiLngGrDDgeymt)); // DD
                    	//
                    	// TODO Undirbua fyrir upplysinga: Ef oskad er eftir ad eyda geymd fridar-svaedi
                    	gildiBrdGrDDvistud = gildiBrdGrDDgeymtStak;
                    	gildiLngGrDDvistud = gildiLngGrDDgeymtStak;
                    	//
                    	/*
                          Lata siminn fara a thogn/hringing a medan ad siminn er staddur innan fridar-svaedis EN
                          hins vegar ad lata siminn adeins titra EINU sinni thegar farid er inn i
                          "fridhelgi" og svo EINU sinni, thegar farid er ur fridhelgi,
                          sja adeins nedar (um 30 linur, eins og er nuna). Fridhelgi gaeti lika verid
                          oefugt midad vid, hvad valid var a takkanum "HRINGJA" eda "THOEGN".
                    	 */
                    	audiomanager.setRingerMode(nyHringingaMata);
                    	//
                    	if(!innanFridarSvaedis)
                    	{
                    		buinnAdTitra    = false;
                    		innanFridarSvaedis = true;
                    		//
                    		if (aTakkanumStendur.equals("HRINGJA")) // inn i hringi-svaedid.
                    		{
                    			titraMorseK();
                    			//
                    			if (!(vistaStuttaStund))
                    			{ //                                 blar
                    				grunnRammi.setBackgroundColor(0xff000077);
                    			}
                    			else
                    			{ //                              fjolu-blar
                    				grunnRammi.setBackgroundColor(0xff440044);
                    			} // if else
                    		}
                    		else // Sama og "THOEGN" kominn inn i fridar-svaedid
                    		{
                    			titraMorseR();
                    			//                              graenn
                    			if (!(vistaStuttaStund))
                    			{ //                               graenn
                    				grunnRammi.setBackgroundColor(0xff004444);
                    			}
                    			else
                    			{ //                              dokk-gulur
                    				grunnRammi.setBackgroundColor(0xff444400);
                    			} // if else
                    		} // if else
                    		//
                    		// Saekja gildi ur SD-Kortinu ur thvi ad thau eru fyrir hendi her =>
                    		gildiBrdGrDDvistud = gildiBrdGrDDgeymtStak;
                    		gildiLngGrDDvistud = gildiLngGrDDgeymtStak;
                         	} // if(!innanFridarSvaedis)
                    } // if(ReikniStokkur.fridHelgi( . . . ) . . .
                    else // ef EKKI if(ReikniStokkur.fridHelgi( . . . ) . . .
                    {
                            // Hringingin sett aftur, eins og hun var = aftur blar EDA graen grummRammi:
                            // Slokkt a hringingunni = graenn grunnRammi EDA kveikt = blar grunnRammi =>
                            String aTakkanumStendur = hringjaTakki.getText().toString();
                            if (aTakkanumStendur.equals("HRINGJA")) grunnRammi.setBackgroundColor(0xff004444);
                            else /* annars sloekkt => graenn rammi*/grunnRammi.setBackgroundColor(0xff000077);
                            //
                            innanFridarSvaedis = false;
                            //
                            if(!buinnAdTitra)
                            {
                            	audiomanager.setRingerMode(fyrriHringingaMata);
                            	buinnAdTitra = true;
                            	//
                            	if (aTakkanumStendur.equals("HRINGJA")) // ut ur hringi-svaedinu.
                            	{
                            		titraMorseR();
                            		//                              graenn
                            		grunnRammi.setBackgroundColor(0xff004444);
                            	}
                            	else // Sama og "THOEGN" kominn ut ur fridar-svaedinu
                            	{
                            		titraMorseK();
                            		//                               blar
                            		grunnRammi.setBackgroundColor(0xff000077);
                            	} // if else
                            	//
                            	// Eyda stadsetninguna um leid og
                            	// notandinn er kominn ut fyrir svaedid => EYDA STADNUM SJALFVIRKT:
                            	// Adgerdin fra linu 1173 endurtekin til oeryggis, en gaeti verid
                            	// o-tharfi.
                            	// TODO Gera tilraunir med thvi ad sleppa thennan lid innan if slufunni.
                            	//
                            	if (vistaStuttaStund)
                            	{
                            		String alltSkjalidUtiEinumStreng = SAMA_SEM_TOMUR_LISTI;
                            		//
                            		// TODO eydingarFyrirkomulag();
                            		// TODO thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis(500);
                            		//
                            		// TODO I stadinn =>
                            		//
                            		// TODO Athuga eydingarFyrirkomulag();
                            		// TODO Athuga thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis(500);
                            		//
                            		// Thad er naegilegt ad eyda sidasta vistada stadnum. Thessi sidasti
                            		// vistadur stadur er o-hadur thvi, hvort annann vistadur stadur hefdi
                            		// verid na-laegt stadnum, sem sidast var vistad.
                            		// Thetta fyrirkomulag hentar vel, ef stutt eru milli vistadra stada
                            		// midad vid ad stadsetninga hnit simastaura er ekki eins na-kvaem og
                            		// med adstod GPS.
                            		try 
                            		{
										gv.eydaNyjastaStakinu();
									} catch (EkkertStakFinnstException e1) 
									{
										e1.printStackTrace();
									} // try catch
                            		//
                            		//
                            		try 
                            		{
                            			alltSkjalidUtiEinumStreng = gv.ollStokUtiStrengjaBreytu();
                            		}
                            		catch (EkkertStakFinnstException e)
                            		{
                            			e.printStackTrace();
                            		}
                            		skrifaSkjal(NAFN_SKJALS, alltSkjalidUtiEinumStreng);
                            	} // if
                            	//
                            	skrifaSkjal(NAFN_TEG_VISTUNAR, VISTA_LENGUR);
                            	vistaStuttaStund = false;
                            } // if(!buinnAdTitra)
                          //
                    } // if if(ReikniS . . . ) else
                  //
            } // if(hnitGPSvistad) else
            // Endurheimta lengd radiusar =>
            skrifaRadius.setText(radiusSleginInn);
            skrifaRadius.setTextColor(0xffffffbb); // blatt.
            fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
    } // onLocationChanged( . . . )
    //
	//
	//
	/**
	 * Tilgangur: Gefa skyringu um ad adstaedur fyrir GPS hefur breyst.
	 * 
	 * @param provider
	 * @param status
	 * @param extras
	 */
	public void onStatusChanged(String provider, int status, Bundle extras) 
	{
		Toast.makeText(this, "GPS hefur breyst!" + provider,
				Toast.LENGTH_SHORT).show();
	    //
	} // onStatusChanged( . . . )
	//
	// Windows XP TODO @Override
	public void onProviderDisabled(String provider)
	{
	} // onProviderDisabled(String provider)

	// Windows XP TODO @Override
	public void onProviderEnabled(String provider)
	{
	} // onProviderEnabled(String provider)//
	//
	// -     -     -     -     -     -     -     -     -     - \\
	// -     -     -     -     -     -     -     -     -     - \\
	//
	// TODO THULA-THRIF KOMINN NIDUR AFTUR TILBAKA
    
    
    
    
    /**
     * (Hluti af thula-thrifi)
     * Thessi adferd er eingongu til thess ad thjona
     * ad sameina undir eina hatt adgerdir, sem eru
     * sameiginlega i adferdum => i thessu tilfelli
     * fyrir takkana "VISTA" og "VISTA STUTTLEGA"
     * 
     * Notkun: vistunarFyrirkomulag(GRAENN, BLAR, "VISTA STUTTLEGA"); eda
     *         vistunarFyrirkomulag(0xff004444, 0xff000077, "VISTA STUTTLEGA");
     *         
     * @param litur1
     * @param litur2
     * 
     */
    protected void vistunarFyrirkomulag(int litur1, int litur2, String merkjaTakka)
    {
    	eydaTakki.setText(R.string.taka_burt);
		vistaTakki.setText(R.string.vista);
		stuttaStund.setText(merkjaTakka);
		gv.geymaStak(gildiBrdGrDD, gildiLngGrDD, "", 0);
		//
		alltSkjalid = SAMA_SEM_TOMUR_LISTI;
		//
		try
		{
			alltSkjalid = gv.ollStokUtiStrengjaBreytu();
		}
		catch (EkkertStakFinnstException se)
		{
			// Lagmarks strengur til thess ad utbua toman lista =>
			alltSkjalid = SAMA_SEM_TOMUR_LISTI;
			se.printStackTrace();
		} // try catch
		//
		skrifaSkjal(NAFN_SKJALS, alltSkjalid);
		//
		gildiBrdGrDDvistud = gildiBrdGrDD;
		gildiLngGrDDvistud = gildiLngGrDD;
		gluggiBrdGrDMSvistud.setText(birtaGildiBrdGrDMS);
		gluggiLngGrDMSvistud.setText(birtaGildiLngGrDMS);
		gluggiBrdGrDDvistud.setText (birtaGildiBrdGrDD);
		gluggiLngGrDDvistud.setText (birtaGildiLngGrDD);
		//
		// TODO THULA-THRIF THORF BYRJA =>
		df2 = new DecimalFormat("0.0");
		//		
		try
		{
			radiusSleginInn = (String)skrifaRadius.getText().toString();
			fridurOgRo = (double)Double.parseDouble(radiusSleginInn);
			/*
			 * Kominn halfan hring i kringum Jordina ???
			 */
			if(fridurOgRo > HA_MARKS_RADIUS) fridurOgRo = HA_MARKS_RADIUS;
			radiusSleginInn = df2.format(fridurOgRo);
			skrifaSkjal(NAFN_STILLA_RADIUS, radiusSleginInn);
		} // try
		catch (Exception e)
		{
			// Sjalf-gefin gildi (default):
			radiusSleginInn = "100.0";
			fridurOgRo = 100.0; // metrar.
			//
		} // try catch
		//
		/* Forminu er sjalfvirkt lagad ef ad vidkomandi slaer inn of
		   marga aukastafi.
		   EINN aukastaf er gert rad fyrir.
		 */
		radiusSleginInn = df2.format(fridurOgRo);
		//
		skrifaRadius.setText(radiusSleginInn);
		// TODO THULA-THRIF ENDAR I BILI <=
		//
		gluggiFjarlagdFraGPShnitiKynna.setText("");
		gluggiFjarlagdFraGPShnitiBirta.setText("");
		//
		String aTakkanumStendur = hringjaTakki.getText().toString();
		if (aTakkanumStendur.equals("HRINGJA"))
		{
			gluggiSkilabodaSkjoda.setText("Hringing");
			// Kveikt a hringingunni = blar grummRammi:
			grunnRammi.setBackgroundColor(litur2);
			audiomanager.setRingerMode(LATA_HRINGJA);
			titraMorseK();
		}
		else
		{
			gluggiSkilabodaSkjoda.setText("Enginn hringing");
			// Slokkt a hringingunni = graenn grummRammi:
			grunnRammi.setBackgroundColor(litur1);
			audiomanager.setRingerMode(LATA_THEGJA);
			titraMorseR();
		} // if else
		//
		gluggiSkrifaStefnuTil.setText("");
		gluggiSkrifaStefnuFra.setText("");
		hnitGPSvistad   = true;
		buinnAdTitra    = false;
		innanFridarSvaedis = true;
		//
		// Slokkt a hringingunni = graenn grummRammi:
		//
    } // vistunarFyrirkomulag()
    //
    // -     -     -     -     -     -     -     -     -     -     -     -     -     -     - \\
    /**
     * (Hluti af thula-thrifi)
     * Thessi adferd er eingongu til thess ad thjona
     * ad sameina undir eina hatt adgerdir, sem eru
     * sameiginlega i adferdum.
     */
    protected void eydingarFyrirkomulag()
    {
    	if(hnitGPSvistad)
		{
    		// TODO ILLA LYKTANDI THULA =>
    		// TODO THULA-THRIF ER BRYN THORF I KVOLD (2012APR13) (TIL BRADA-BIRGDA HAFT SVONA)
    		if(vistaStuttaStund)
    		{
    			vistaStuttaStund = false;
    			//
    			// Sleppa? TODO fridurOgRo = 0.0; // metrar.
				//
				if (gv.staerdGeymslu() > 0)
				{
					//
					// 2012 Ag. 26.
					int staerdGeymslu = gv.staerdGeymslu();
	    			//
	    			if(staerdGeymslu > 0)
	    			{
	    				try
	    				{
							gv.eydaNyjastaStakinu();
						}
	    				catch (EkkertStakFinnstException e)
						{
							e.printStackTrace();
						} // try catch
	    				//
	    				// Athuga
	    				for(int numStaks = 0; numStaks < staerdGeymslu; numStaks++)
	    				{
	    					try {
	    						// Til skyringar eru eftirfarandi tvaer linur =>
	    					    // Object[] lesidStak = {gildiBrdGrDDlesid, gildiLngGrDDlesid,
	    						//                      heitaNafn        , radNumer          };
	    						//
								Object[] lesidStak = gv.lesaStak(numStaks);
								double gildiBrdGrDDlesid = (Double) lesidStak[0];
								double gildiLngGrDDlesid = (Double) lesidStak[1];
								if(ReikniStokkur.fridHelgi(fridurOgRo + 10, gildiBrdGrDDlesid, gildiBrdGrDD,
										                                    gildiLngGrDDlesid, gildiLngGrDD))
								{ // Eyda vistud GPS hnit innan fridar/hringi-svaedis =>
									gv.eydaStakNum(numStaks);
								} // if( . . . )
	    						// Skrifa thessa hreyfingu:
	    					} // try
							catch (EkkertStakFinnstException e)
							{
								// TODO Auto-generated catch block
								e.printStackTrace();
							} // try catch
	    				} // for(int numStaks = 0; . . . )
	    				// Athuga
	    			} // if(staerdGeymslu > 0)
	    			//
					/*
					try
					{
						// TODO thad tharf ad fletta upp stadur, sem er innan fridarsvaedisins
						// gv.eydaAkvedidStak(gildiBrdGrDDvistud, gildiLngGrDDvistud, "", 0);
						gv.eydaNyjastaStakinu();
					}
					catch (EkkertStakFinnstException e1)
					{
						e1.printStackTrace();
					} // try catch
					*/
					//
					if (gv.staerdGeymslu() > 0) hnitGPSvistad = true;
					else                        hnitGPSvistad = false;
					//
					try
					{
						alltSkjalid = gv.ollStokUtiStrengjaBreytu();
					}
					catch (EkkertStakFinnstException se)
					{
						// Lagmarks strengur til thess ad utbua toman lista =>
						alltSkjalid = SAMA_SEM_TOMUR_LISTI;
						se.printStackTrace();
					} // try catch
					//
					skrifaSkjal(NAFN_SKJALS, alltSkjalid);
					//
				} // if (gv.staerdGeymslu() > 0)
				else // EKKI if (gv.staerdGeymslu() > 0) => tom geymsla.
				{
					hnitGPSvistad = false;
					//
					// Lagmarks strengur til thess ad utbua toman lista =>
					alltSkjalid = SAMA_SEM_TOMUR_LISTI;
					//
					skrifaSkjal(NAFN_SKJALS, alltSkjalid);
					//
				} // if else => EKKI if (gv.staerdGeymslu() > 0)
				//
				vistaTakki.setText(R.string.vista);
				stuttaStund.setText(R.string.vista_stuttlega);
				eydaTakki.setText(R.string.eytt);
				skrifaRadius.setText("");
				gluggiBrdGrDMSvistud.setText("");
				gluggiLngGrDMSvistud.setText("");
				gluggiBrdGrDDvistud.setText("");
				gluggiLngGrDDvistud.setText("");
				//
				gluggiFjarlagdFraGPShnitiKynna.setText("");
				gluggiFjarlagdFraGPShnitiBirta.setText("");
				//
				String aTakkanumStendur = hringjaTakki.getText().toString();
				if (aTakkanumStendur.equals("HRINGJA"))
				{
					gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_slokkt);
					gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
					//
					gluggiSkilabodaSkjoda.setText(R.string.nuna_er_slokkt_a_hringingunni);
					// Kveikt a hringingunni = blar grummRammi:
					grunnRammi.setBackgroundColor(0xff004444);
					audiomanager.setRingerMode(LATA_THEGJA);
					titraMorseR();
				} // if (aTakkanumStendur.equals("HRINGJA"))
				else
				{
					gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_kveikt);
					gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
					gluggiSkilabodaSkjoda.setText(R.string.nuna_er_kveikt_a_hringingunni);
					grunnRammi.setBackgroundColor(0xff000077);
					audiomanager.setRingerMode(LATA_HRINGJA);
					titraMorseK();
				} // if else EKKI if (aTakkanumStendur.equals("HRINGJA"))
				//
				gluggiSkrifaStefnuTil.setText("");
				gluggiSkrifaStefnuFra.setText("");
				gildiBrdGrDDvistud = 0.0;
				gildiLngGrDDvistud = 0.0;
				//
				buinnAdTitra       = true;
				innanFridarSvaedis    = false;
				//
    		} // if(vistaStuttaStund) => TODO THULA-THRIF I KVOLD (2012APR13) ENDIR HJER I BILI
    		else // ANNARS EKKI if(vistaStuttaStund)
    		{
    			int staerdGeymslu = gv.staerdGeymslu();
    			
    			if(staerdGeymslu > 0)
    			{
    				// Hreinsa ut oell stok innan akvedins svaedis =>
    				for(int numStaks = 0; numStaks < staerdGeymslu; numStaks++)
    				{
    					try {
    						/* Til skyringar eru eftirfarandi tvaer linur =>
    					    Object[] lesidStak = {gildiBrdGrDDlesid, gildiLngGrDDlesid,
    						                      heitaNafn        , radNumer          };
    						*/
							Object[] lesidStak = gv.lesaStak(numStaks);
							double gildiBrdGrDDlesid = (Double) lesidStak[0];
							double gildiLngGrDDlesid = (Double) lesidStak[1];
							//
							// eyda oell stok innan akvedins svaedis (radius) + 10 metrar.
							if(ReikniStokkur.fridHelgi(fridurOgRo + 10, gildiBrdGrDDlesid, gildiBrdGrDD,
									                                    gildiLngGrDDlesid, gildiLngGrDD))
							{ // Eyda vistud GPS hnit innan fridar/hringi-svaedis =>
								gv.eydaStakNum(numStaks);
								// Geymt a-fram i skranni a SD kortinu en eytt ur listanum.
							} // if( . . . )
    					} // try
						catch (EkkertStakFinnstException e)
						{
							// TODO Auto-generated catch block
							e.printStackTrace();
						} // try catch
    				} // for(int numStaks = 0; . . . )
    				//
    			} // if(staerdGeymslu > 0)
    			//
    			// Endurtekning til oeryggis =>
    			if(ReikniStokkur.fridHelgi(fridurOgRo + 10, gildiBrdGrDDvistud, gildiBrdGrDD,
                                                            gildiLngGrDDvistud, gildiLngGrDD))
    			{
    				// TODO ILLA LYKTANDI THULA =>
    				// TODO THULA-THRIF ER BRYN THORF I KVOLD (2012APR13)(TIL BRADA-BIRGDA HAFT SVONA)
    				// Sleppa ? TODO fridurOgRo = 0.0; // metrar.
    				//
    				if (gv.staerdGeymslu() > 0)
    				{
    					// 2012 Ag. 26.
    					
    					staerdGeymslu = gv.staerdGeymslu();
    	    			
    	    			if(staerdGeymslu > 0)
    	    			{
    	    				for(int numStaks = 0; numStaks < staerdGeymslu; numStaks++)
    	    				{
    	    					try {
    	    						/* Til skyringar eru eftirfarandi tvaer linur =>
    	    					    Object[] lesidStak = {gildiBrdGrDDlesid, gildiLngGrDDlesid,
    	    						                      heitaNafn        , radNumer          };
    	    						*/
    								Object[] lesidStak = gv.lesaStak(numStaks);
    								double gildiBrdGrDDlesid = (Double) lesidStak[0];
    								double gildiLngGrDDlesid = (Double) lesidStak[1];
    								if(ReikniStokkur.fridHelgi(fridurOgRo + 10, gildiBrdGrDDlesid, gildiBrdGrDD,
    										                                    gildiLngGrDDlesid, gildiLngGrDD))
    								{ // Eyda vistud GPS hnit innan fridar/hringi-svaedis =>
    									gv.eydaStakNum(numStaks);
    								} // if( . . . )
    	    					} // try
    							catch (EkkertStakFinnstException e)
    							{
    								// TODO Auto-generated catch block
    								e.printStackTrace();
    							} // try catch
    	    				} // for(int numStaks = 0; . . . )
    	    				//
    	    			} // if(staerdGeymslu > 0)
    					
    					
    					
    					
    					
    					/*
    					try
    					{
    						// TODO thad tharf ad fletta upp stadur, sem er innan fridarsvaedisins
    						gv.eydaAkvedidStak(gildiBrdGrDDvistud, gildiLngGrDDvistud, "", 0);
    					}
    					catch (EkkertStakFinnstException e1)
    					{
    						e1.printStackTrace();
    					} // try catch
    					*/
    					if (gv.staerdGeymslu() > 0) hnitGPSvistad = true;
    					else                        hnitGPSvistad = false;
    					//
    					try
    					{
    						alltSkjalid = gv.ollStokUtiStrengjaBreytu();
    					}
    					catch (EkkertStakFinnstException se)
    					{
    						// Lagmarks strengur til thess ad utbua toman lista =>
    						alltSkjalid = SAMA_SEM_TOMUR_LISTI;
    						se.printStackTrace();
    					} // try catch
    					//
    					skrifaSkjal(NAFN_SKJALS, alltSkjalid);
    					//
    				} // if (gv.staerdGeymslu() > 0)
    				else
    				{
    					hnitGPSvistad = false;
    					//
    					// Lagmarks strengur til thess ad utbua toman lista =>
    					alltSkjalid = SAMA_SEM_TOMUR_LISTI;
    					//
    					skrifaSkjal(NAFN_SKJALS, alltSkjalid);
    					//
    				} // if else => EKKI if (gv.staerdGeymslu() > 0)
    				//
    				vistaTakki.setText(R.string.vista);
    				stuttaStund.setText(R.string.vista_stuttlega);
    				eydaTakki.setText(R.string.eytt);
    				skrifaRadius.setText("");
    				gluggiBrdGrDMSvistud.setText("");
    				gluggiLngGrDMSvistud.setText("");
    				gluggiBrdGrDDvistud.setText("");
    				gluggiLngGrDDvistud.setText("");
    				//
    				gluggiFjarlagdFraGPShnitiKynna.setText("");
    				gluggiFjarlagdFraGPShnitiBirta.setText("");
    				//
    				String aTakkanumStendur = hringjaTakki.getText().toString();
    				if (aTakkanumStendur.equals("HRINGJA"))
    				{
    					gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_slokkt);
    					gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
    					//
    					gluggiSkilabodaSkjoda.setText(R.string.nuna_er_slokkt_a_hringingunni);
    					// Kveikt a hringingunni = blar grummRammi:
    					if(vistaStuttaStund) grunnRammi.setBackgroundColor(0xff444400); // Kiwi dokkgulur
    					else grunnRammi.setBackgroundColor(0xff004444);                 // Graenn.
    					// grunnRammi.setBackgroundColor(0xff004444);
    					audiomanager.setRingerMode(LATA_THEGJA);
    					titraMorseR();
    				} // if (aTakkanumStendur.equals("HRINGJA"))
    				else
    				{
    					gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_kveikt);
    					gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
    					gluggiSkilabodaSkjoda.setText(R.string.nuna_er_kveikt_a_hringingunni);
    					// grunnRammi.setBackgroundColor(0xff000077);
    					if(vistaStuttaStund) grunnRammi.setBackgroundColor(0xff440044); // Blaber.
    					else                 grunnRammi.setBackgroundColor(0xff000077); // Blar.
    					//
    					audiomanager.setRingerMode(LATA_HRINGJA);
    					titraMorseK();
    				} // if else EKKI if (aTakkanumStendur.equals("HRINGJA"))
    				//
    				gluggiSkrifaStefnuTil.setText("");
    				gluggiSkrifaStefnuFra.setText("");
    				gildiBrdGrDDvistud = 0.0;
    				gildiLngGrDDvistud = 0.0;
    				//
    				buinnAdTitra       = true;
    				innanFridarSvaedis    = false;
    				//
    				// TODO THULA-THRIF I KVOLD (2012APR15) ENDIR HJER I BILI
    			} // if(ReikniStokkur.fridHelgi(fridurOgRo, gildiBrdGrDDvistud, gildiBrdGrDD, . . . )
    			else // ekki if ( ------------------//--------------//---------------//---------//--)                                     
    			{ 
    				birtaGildiBrdGrDMSvistud = ReikniStokkur.umreiknaFyrirMinSek(gildiBrdGrDDvistud);
    				birtaGildiLngGrDMSvistud = ReikniStokkur.umreiknaFyrirMinSek(gildiLngGrDDvistud);
    				//
    				// Birta ut i notendavidmoti: DMS (Heilar gradur, Minutur og Sekundur) utfaerzla:
    				gluggiBrdGrDMSvistud.setText(birtaGildiBrdGrDMSvistud);
    				gluggiLngGrDMSvistud.setText(birtaGildiLngGrDMSvistud);
    				//
    				// DoubleDecimal utfaerzla:
    				birtaGildiBrdGrDDvistud = df1.format(gildiBrdGrDDvistud);
    				birtaGildiLngGrDDvistud = df1.format(gildiLngGrDDvistud);
    				//
    				// Birta ut i notendavidmot: DD (Heilar gradur og tugabrot grada):
    				gluggiBrdGrDDvistud.setText(String.valueOf(birtaGildiBrdGrDDvistud)); // DD
    				gluggiLngGrDDvistud.setText(String.valueOf(birtaGildiLngGrDDvistud)); // DD
    				gluggiBrdGrDMSvistud.setText(R.string.skodid_menu);
    				gluggiLngGrDMSvistud.setText(R.string.stillingar);
    				//
    				df2 = new DecimalFormat("0.0");
    				//
    				vegalengd = (double)ReikniStokkur.vegalengdGPS(gildiBrdGrDDvistud, gildiBrdGrDD,
                                    							   gildiLngGrDDvistud, gildiLngGrDD);
    				stefna    = (double)ReikniStokkur.stefnaTilGPS(gildiBrdGrDDvistud, gildiBrdGrDD,
                                                                   gildiLngGrDDvistud, gildiLngGrDD);
    				birtaVegalengd = df2.format(vegalengd);
    				birtaStefnuTilDMS = ReikniStokkur.umreiknaFyrirMinSek(stefna);
    				//
    				stefna    = (double)ReikniStokkur.stefnaFraGPS(gildiBrdGrDDvistud, gildiBrdGrDD,
									                               gildiLngGrDDvistud, gildiLngGrDD);
    				birtaStefnuFraDMS = ReikniStokkur.umreiknaFyrirMinSek(stefna);
    				//
    				//gluggiFjarlagdFraGPShnitiKynna.setText(R.string.fra_stadnum);
    				//gluggiFjarlagdFraGPShnitiBirta.setText(birtaVegalengd + "m");
    				//gluggiSkrifaStefnuTil.setText("Stefna til" + birtaStefnuTilDMS);
    				//gluggiSkrifaStefnuFra.setText("Stefna fra" + birtaStefnuFraDMS);
    				gluggiSkilabodaSkjoda.setText(R.string.kominn_ut_ur_svaedinu);
    				Toast.makeText(this, "GPS HNITIN EKKI EYTT VEGNA VEGALENGDAR",
    						Toast.LENGTH_SHORT).show();
    				//
    			} // if else (ekki) if(ReikniStokkur.fridHelgi(fridurOgRo, gildiBrdGrDDvistud,.....)
    			//
    		} // if else (ekki) if(vistaStuttaStund)
    		//           
		} // if(hnitGPSvistad)
    	//
		else // ANNARS EKKI if(hnitGPSvistad)
		{
			String aTakkanumStendur = hringjaTakki.getText().toString();
			if (aTakkanumStendur.equals("HRINGJA"))
			{
				gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_slokkt);
				gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
				gluggiSkilabodaSkjoda.setText(R.string.nuna_er_slokkt_a_hringingunni);
				audiomanager.setRingerMode(LATA_THEGJA);
				// Slokkt a hringingunni = graenn grummRammi:
				grunnRammi.setBackgroundColor(0xff004444);
			} // if (aTakkanumStendur.equals("HRINGJA"))
			else
			{
				gluggiFjarlagdFraGPShnitiKynna.setText(R.string.thad_er_kveikt);
				gluggiFjarlagdFraGPShnitiBirta.setText(R.string.a_hringingunni);
				gluggiSkilabodaSkjoda.setText(R.string.nuna_er_kveikt_a_hringingunni);
				audiomanager.setRingerMode(LATA_HRINGJA);
				// Kveikt a hringingunni = blar grummRammi:
				grunnRammi.setBackgroundColor(0xff000077);
			} // if else EKKI => if(aTakkanumStendur.equals("HRINGJA"))
			//
		} // if else // ANNARS EKKI if(hnitGPSvistad)
    	//
    } // eydingarFyrirkomulag()
    //
    protected void thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis(int fyrirUtanRadius)
    {
    	int staerdGeymslu = gv.staerdGeymslu();
		
		if(staerdGeymslu > 0)
		{
			for(int numStaks = 0; numStaks < staerdGeymslu; numStaks++)
			{
				try {
					/* Til skyringar eru eftirfarandi tvaer linur =>
					   tekid er tilliti til ad eftirfarandi breytur eru notadar
					   strax og ekki aftur thess vegna eru thaer stadbundnar.
					    
				    Object[] lesidStak = {gildiBrdGrDDlesid, gildiLngGrDDlesid,
					                      heitaNafn        , radNumer          };
					*/
					Object[] lesidStak = gv.lesaStak(numStaks);
					double gildiBrdGrDDlesid = (Double) lesidStak[0];
					double gildiLngGrDDlesid = (Double) lesidStak[1];
					//
					/* Adeins staekka hringin til oeryggis um halfa kilometri til thess
					   ad hreins betur upp vegna thess ad venjulega eru folk komnir a ferd
					   adur en ad naestu GPS hnit kemur inn midad vid Simastaura GPS.
					*/
					if(ReikniStokkur.fridHelgi((fridurOgRo + fyrirUtanRadius), gildiBrdGrDDlesid, gildiBrdGrDD,
							                                                   gildiLngGrDDlesid, gildiLngGrDD))
					{ // Eyda vistud GPS hnit innan fridar/hringi-svaedis =>
						gv.eydaStakNum(numStaks);
					} // if( . . . )
				} // try
				catch (EkkertStakFinnstException e)
				{
					// TODO Auto-generated catch block
					e.printStackTrace();
				} // try catch
			} // for(int numStaks = 0; . . . )
		} // if(staerdGeymslu > 0)
    } // thrifaUppAfgangsGPShnitInnanFridarEdaHringiSvaedis()
    //
    // -     -     -     -     -     -     -     -     -     -     -     -     -     -     - \\
    /**
	 * Tilgangur: Sameina eins adgerdir i adferdinni onLocationChanged
	 *            til thess ad gera forrits thuluna laesilegri.
	 * 
	 * Fyrir:     Gagnageymsla (gv) med geymd GPS hnit.
	 *            Eitt geymt GPS hnit (breiddar og lengdar-gradur) og
	 *            uppgefid alfa og beta fyrir Algrimuna til thess ad
	 *            reikna ut veldis-utjofnun fyrir fridar-svaedid.
	 *            
	 * Eftir:     Utkoma vinnslunni er eitt geymd GPS hnit, ef finnst a
	 *            formi vigurs med tveimum stokum af taginu "double".
	 *            1. stakid = gildiBrdGrDDgeymtStak
	 *            2. stakid = gildiLngGrDDgeymtStak
	 *            sem er GPS hnitid, sem fannst ur gagna geymslunni, sem
	 *            passar inni i "fridar-svaedinu".
	 * 
	 * @param gildiBrdGrDDgeymtStak
	 * @param gildiLngGrDDgeymtStak
	 * @param alfa
	 * @param beta
	 * @return geymtGPShnit, sem er skilabreyta, sja skrifilsinu um "Eftir" ofar.
	 */
	protected double[] finnaGPShnitInnanFridarSvaedis(double gildiBrdGrDDgeymtStak,
			                                      	  double gildiLngGrDDgeymtStak,
			                                      	  double alfa,
			                                      	  double beta,
			                                      	  String stilling)
	{
		double[] geymtGPShnit = {0.0, 0.0};
		//
		// TODO
    	int staerd = gv.staerdGeymslu();
		int fletta = 0;
		//
		try
		{
			Object[] geymtStak = gv.lesaGeymtSvaediStak(fletta);
		  	gildiBrdGrDDgeymtStak = (Double) geymtStak[0];
		  	gildiLngGrDDgeymtStak = (Double) geymtStak[1];
		}
		catch (HringinginErOpinAllStadarException e1)
		{
			if(stilling.equals(VENJL_SIMI))
			{
				Toast.makeText(this, "HRINGINGIN ER OPIN",
						Toast.LENGTH_SHORT).show();
			}
			else
			{
				Toast.makeText(this, "HRINGINGIN ER EKKI OPIN",
						Toast.LENGTH_SHORT).show();
			} // if else
			//
			gildiBrdGrDDgeymtStak = 0.0;
			gildiLngGrDDgeymtStak = 0.0;
		} // try catch
		//
		//
		// Veldis-utjofnun =>
		stX = ReikniStokkur.veldisUtjofnun(alfa, beta, gildiBrdGrDDvistud, gildiBrdGrDD);
		stY = ReikniStokkur.veldisUtjofnun(alfa, beta, gildiLngGrDDvistud, gildiLngGrDD);
        /*
           Finna videigandi GPS hnit, sem uppfyllir skilyrdi fyrir svaedid
           innan "FridarSvaedis" med veldis-visis-utjofnun =>
         */
        while(fletta < staerd &&
			  !(ReikniStokkur.fridHelgi(fridurOgRo, gildiBrdGrDDgeymtStak, stX,
					  								gildiLngGrDDgeymtStak, stY)))
		{
        	try
			{
				Object[] geymtStak = gv.lesaGeymtSvaediStak(fletta);
				gildiBrdGrDDgeymtStak = (Double) geymtStak[0];
				gildiLngGrDDgeymtStak = (Double) geymtStak[1];
			} 
			catch (HringinginErOpinAllStadarException e1)
			{
				Toast.makeText(this, e1.toString(),
						Toast.LENGTH_SHORT).show();
				gildiBrdGrDDgeymtStak = 0.0;
				gildiLngGrDDgeymtStak = 0.0;
			} // try catch
			//
			fletta++;
			//
		} // while(ReikniStokkur. . . . . )
        //
        geymtGPShnit[0] = gildiBrdGrDDgeymtStak;
        geymtGPShnit[1] = gildiLngGrDDgeymtStak;
        return geymtGPShnit;
        //
	} // finnaGPShnitInnanFridarSvaedis( . . . )
	//
    // -     -     -     -     -     -     -     -     -     -     -     -     -     -     - \\
    /**
     * Notkun:
     * Innan fridar/hringi-svaedis:
     *                                                  blar   , fjolu-blar,   graenn  ,   gulur
     * litaBakgrunninn( aTakkanumStendur, "HRINGJA", 0xff000077, 0xff440044, 0xff004444, 0xff444400);
     * 
     *                                                 graenn  ,   gulur   ,   blar   ,  fjolu-blar
     * litaBakgrunninn( aTakkanumStendur, "HRINGJA", 0xff004444, 0xff444400, 0xff000077, 0xff440044);
     * 
     * @param aTakkanumStendur
     * @param textiTakkans
     * @param litur1
     * @param litur2
     * @param litur3
     * @param litur4
     */
    protected void litaBakgrunninn(String aTakkanumStendur, String textiTakkans,
    		                       int litur1, int litur2, int litur3, int litur4)
	{
		if (aTakkanumStendur.equals(textiTakkans)) // t.d. "HRINGJA"
		{
			if (!(vistaStuttaStund)) // ekki vistad i stutta stund.
			{ //                              graenn
				grunnRammi.setBackgroundColor(litur1);
			}
			else                     // vistad i stutta stund.
			{ //                               gulur
				grunnRammi.setBackgroundColor(litur2);
			} // if else
		} // if (aTakkanumStendur.equals("HRINGJA"))
		else  // annars ef ("THEGJA") = ekki "HRINGJA"
		{
			// annars kveikt => blar rammi
			if (!(vistaStuttaStund)) // ekki vistad i stutta stund.
			{ //                               blar
				grunnRammi.setBackgroundColor(litur3);
			}
			else                     // vistad i stutta stund.
			{ //                           fjolu-blar
				grunnRammi.setBackgroundColor(litur4);
				//
			} // if else
			//
		} // if else EKKI if (aTakkanumStendur.equals("ÞEGJA"))
		//
	} // litaBakgrunninn( . . . )
    //
    //
    //
    //
    //
    //
    //
    //
    /**
	 * Smellad a "bak-takkanum" a snjallsimanum =>
	 * Upp kemur "skot-gluggi", sem spyr, hvort ad
	 * notandinn vill haetta i forritinu.
	 */
	@Override
	public void onBackPressed()
	{
		/*
          Fastayrding: Notandinn er buinn ad yta a tilbaka hnappann
          til thess ad geta haett i forritinu.
          Setja hringinguna a snjallsimanum, eins og hun var
          adur en ad forritinu Hazir var raest =>
        */
		skapaSpurninguUmAdHaetta   ("HAZIR", "Hætta í forritinu ?");
		skapaSpurninguUmAdSleppaGps("HAZIR", "Áður en hætt er: Stilla t.d. GPS ?");
		//
	} // onBackPressed()
	//
	//
    //
    // TODO ALLT KOMINN UPP AFTUR AD HINGAD.
    // -     -     -     -     -     -     -     -     -     - \\
	// -     -     -     -     -     -     -     -     -     - \\
	//
	// -     -     -     -     -     -     -     -     -     - \\
	// -     -     -     -     -     -     -     -     -     - \\
	// -     -     -     -     -     -     -     -     -     - \\
    // -     -    I N F L A T E R   S E R V I S E S    -     - \\
	// -     -     -     -     -     -     -     -     -     - \\
	// -  HOPPA YFIR I ADRA ADGERD EDA HAETTA I FORRITINU:   - \\
	// -     -     -     -     -     -     -     -     -     - \\
	//
	/**
	 * @category Method onCreateOptionsMenu
	 * @param menu
	 * @return true
	 */
    @Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		 MenuInflater inflater;
	     inflater = getMenuInflater();
	     inflater.inflate(R.menu.menulist, menu);
	     return true;
	} // onCreateOptionMenu( . . . )
	//
	/**
	 * @category Stef onOptionsItemSelected
	 * @param item
	 * @return true
	 * 
	 * Forskilyrdi: Til er notendavidmot, sem birtist sem tiimabundinn
	 * upphafsramma (splash-screen), sem hverfur eftir akvedinni valinni
	 * tiimaskeid til daemis 10 sekundur.
	 * 
	 * Eftirskilyrdi: Notandinn er faerdur yfir a naesta ramma samkvaemt vali
	 * sem vidkomnandi hefur framkvaemt med thvii ad yyta a videigandi valhnappa
	 * ad undangenginni smelli aa "MENU" takka snjallsiimans.
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		switch (item.getItemId()) 
		{
		case R.id.ivHazirActivity:
			/*
			    Setja stillingu hringingar snjallsimans,
			    eins og var, adur en ad "Eldri Hazir" (GPShnitOgStefnaActivity)
			    var raest.
			 */
			// Virkar ekki lengur eftir ad notandinn gat snuid
			// simanum og myndinni med, vid thad fae eftirfarandi breytu
			// allt af nytt gildi, sem ekki lengur er upphafs gildinu,
			// sem farid var af stad med.
			// audiomanager.setRingerMode(upphafsHringingaMata);
			//
			/*
			   Fastayrding (stoedulysing): Notandinn er buinn ad yta a valhnappa
			   til thess ad geta keyrt "GPSrataVeginnActivity".
			  
			   Visathula: Fara yfir a ramma til ad keyra "HazirActivity",
			   sem er "Nyja Hazir" med Gervihnattar GPS og landabrefi:
			 */
			// Intent intento = new Intent(getApplicationContext(),
			//		                 is.Hazir.SatGPS.HazirActivity.class);
			// this.startActivityForResult(intento, 0);
			/*
			   Loka nuverandi ramma "GPShnitOgStefnaActivity".
			 */
			// Bless.killApp(true);
			
			
			
			
			launchHazirOptions("HAZIR", "Stilla t.d. GPS áður ?");
			
			
			
			
			break;
			//
		case R.id.ivGPSstillingar:
			// Virkar ekki lengur eftir ad notandinn gat snuid
			// simanum og myndinni med, vid thad fae eftirfarandi breytu
			// allt af nytt gildi, sem ekki lengur er upphafs gildinu,
			// sem farid var af stad med.
			// audiomanager.setRingerMode(upphafsHringingaMata);
			//
			/*
			   Fastayrding (stoedulysing): Notandinn er buinn ad yta a valhnappa
			   til thess ad geta keyrt "GPS.GPSvistaActivity".
			  
			   Visathula: Fara yfir a ramma til ad keyra "GPS.GPSstillingarActivity":
			 */
			Intent intentu = new Intent(getApplicationContext(),
					                 is.Hazir.GPS.GPSstillingarActivity.class);
			this.startActivityForResult(intentu, 0);
			/*
			   Loka nuuverandi ramma "WelcomeActivity".
			 */
			Bless.killApp(true);
			break;
			//
		case R.id.ivGPShnitOgStefna:
			/*
			   Fastayrding (stoedulysing): Notandinn er buinn ad yta a valhnappa
			   en faer skilabod um ad vidkomandi er nu thegar i "Heima-sidunni".
			 */
			Toast.makeText(this, R.string.thu_ert_heima_nu_thegar,
				             Toast.LENGTH_LONG).show();
			break;
		case R.id.ivHaetta:
			//
			/*
			   Fastayrding: Notandinn er buinn ad yta a valhnappa
		       til thess ad geta haett i forritinu.
		       Setja hringinguna a snjallsimanum, eins og hun var
		       adur en ad forritinu Hazir var raest =>
			 */
			// Virkar ekki lengur eftir ad notandinn gat snuid
			// simanum og myndinni med, vid thad fae eftirfarandi breytu
			// allt af nytt gildi, sem ekki lengur er upphafs gildinu,
			// sem farid var af stad med.
			//
			// String athugaBjolluna = "bjalla";
			skapaSpurninguUmAdHaetta ("HAZIR", "Hætta í forritinu ?"); // , athugaBjolluna);
			skapaSpurninguUmAdSleppaGps("HAZIR", "Áður en hætt er: Stilla t.d. GPS ?");
			//
			break;
		} // switch
		return true;
	} // onOptionsItemSelected( . . . )
	//
} // class GPShnitOgStefnaActivity.
